react教程,css-in-js框架styled-components如何使用?
发布于 作者:苏南大叔 来源:程序如此灵动~

为了更好的理解什么是css-in-js
技术,苏南大叔这里举例一个react
的框架styled-components
。通过这个框架的使用,来理解一下,到底什么是css-in-js
技术。基于本文的代码,就可以创建一个react
专用的css
框架了。

苏南大叔的程序如此灵动博客,记录苏南大叔和计算机代码的故事。测试环境:create-react-app@5.0.1
,react@18.2.0
,react-dom@18.2.0
,node@16.14.2
。css-in-js
的好处是:样式作用域局限于组件内部而不是全局,避免了组件之间样式互相影响。
styled-components
官方文档:

这个代码使用起来就像是编写一个css
版本的react
函数组件。先定义一个个react
组件替代jsx
的标签。比如下面的这两个表述等价,前者为正常的react
表述,后者为css-in-js
的表述:
后者myBtn
是解释为div
还是button
。这个完全看自己的代码演绎了。这里定义的是标签(react
组件)和css
之间的关系。一个styled-components
标签演绎为最终什么样的真实标签,也是这里来演绎的。另外需要特殊说明的是:每条规则对应的都是个react
组件。所以,首字母请大写!(这也是很多第三方类库首字母大小的原因)
定义方式一【推荐】
注意看,这个css
写法和原始的css
写法一致,而且是还包括scss
的这种css
嵌套的写法。

定义方式二
这个方式里面,写法比较接近react
写css
的方式,但是和原始的css
写法相差较大。注意看span:
后面的“冒号”。
css
条目覆盖
这里以苏南大叔比较喜欢的第一种写法为例子。说明这种的css
还支持个别条目覆盖。

props
传递参数
传参数的时候,都是正常使用组件:
测试代码
App.js
:

SunanStyle.js
:
结束语
更多react
相关经验文字,请点击:


