{T}

CSSInJS-快速掌握styled-components

学习目标

  • 理解并掌握 CSSInJS-快速掌握styled-components 的核心原理与工程实践

总结

CSS in JS 就是用 js 来写 css。

今天我们学习了最流行的 CSS in JS 库 styled-components。

它的特点就是样式组件,用 styled.div、styled() 可以创建样式组件。

样式组件可以传参数,可以通过 attrs() 修改参数。

通过 keyframes 来声明动画样式,通过 css 来复用某段样式,通过 createGlobalStyle 创建全局样式。

写样式的时候,通过 & 代表当前样式组件的实例,当样式和全局样式冲突的时候,还可以 && 提高优先级。

styled-components 还支持 theme,可以通过 ThemeProvider 修改 theme 值,通过 useTheme 来读取,每个样式组件里都可以通过 props.theme 拿到当前 theme,然后展示不同样式。

styled-components 相比 scss 等方案有好有坏:

  • 没有 className 冲突问题,不需要 CSS Modules
  • 用 js 来写逻辑,不需要学习单独的 scss 语法
  • 项目里会多很多的样式组件,和普通组件混在一起
  • React DevTools 里会有很多层的样式组件

总体来说,styled-components 还是很有不错,如果你喜欢通过 React 组件的方式来写样式这种方式,可以考虑使用。

我最近在维护的一个项目,用 styled-components 好多年了,大项目用也没问题。

继续阅读