以下4种 React 样式解决方案你选哪种?
据我所知的方案有这几种
- 传统css,通过import引入
- css扩展语言如 less sass,通过loader和模块编译 import引入
Pure CSS in JS
把样式通过行内样式形式写入jsx标签内如<Box style={{borderBottom:'1px solid black'}} />
或
把样式通过在标签外以对象形式书写,在标签内引入如css={ box:{ borderBottom:'1px solid red', color:'white' } } <Box style={css.box} />
Styled-Components (css in js), 一种样式即组件组件即样式的解决方式
const Box = styled.div` border-bottom: 1px solid yellow; color: white; ` ... <Box />
个人感觉第4种是功能最强大,最稳定也最灵活的,但是最近通过行内样式 2、3的方案书写,感觉也没什么问题,毕竟react的哲学就是组件化,你写一次样式,就不用再重复书写了。至于第2种方案,个人感觉不是很好用,首先配置麻烦,其次有悖react哲学的,less sass中的嵌套关系多,这就导致组件无法灵活的分离使用,耦合性太强,重用起来难维护
那么大家的观点是如何呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我选第二种,一个组件一个
scss
文件。其它方案再好,也没有scss来得强大。
建议使用className,可以定义一些公共样式,如: mr-10 (margin-right: 10px;)
用第二种
~~~~