以下4种 React 样式解决方案你选哪种?

发布于 2022-09-11 19:11:56 字数 793 浏览 23 评论 0

据我所知的方案有这几种

  1. 传统css,通过import引入
  2. css扩展语言如 less sass,通过loader和模块编译 import引入
  3. Pure CSS in JS
    把样式通过行内样式形式写入jsx标签内如

    <Box style={{borderBottom:'1px solid black'}} />


    把样式通过在标签外以对象形式书写,在标签内引入如

    css={
        box:{ borderBottom:'1px solid red', color:'white' }
    }
    <Box style={css.box} />
  4. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

人生戏 2022-09-18 19:11:56

我选第二种,一个组件一个scss文件。
其它方案再好,也没有scss来得强大。

可爱咩 2022-09-18 19:11:56

建议使用className,可以定义一些公共样式,如: mr-10 (margin-right: 10px;)

<逆流佳人身旁 2022-09-18 19:11:56

用第二种~~~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文