【发布时间】:2020-03-31 23:07:17
【问题描述】:
各种库通过组件的 props 提供样式解决方案,而长期以来的“标准”方式一直是单独编写 CSS。
随着 CSS-in-JS 的发明,现在可以拥有一些我们以前没有的好处(例如字符串文字、条件类、扩展功能的插件等),并且在分离级别上,它可以像 HTML 中的 CSS 样式标签一样使用,可以在“主”文件(HTML,在 CSS 的情况下)中定义一个编写代码的环境,我们有更大的灵活性,但是使用 JSS,例如,据我了解,将样式代码集中在 classes 对象中是一种常见的做法。
另一方面,我们不仅可以在组件中编写内联 CSS,而且各种库都提供样式解决方案作为组件的 props,例如 Material-UI。
所以,我的问题是: 与使用组件 props 编写样式代码相比,您认为编写 CSS-inJS 有哪些优点和缺点?
*免责声明:我在 CSS-in-JS 和 React 中的样式方面没有太多经验,所以我可能对事情的总体情况/总体情况有错误的印象。
*请注意,我不是在询问组件中的内联 CSS,这不是内联与非内联的问题,而是更具体的问题。
【问题讨论】:
-
我的 2 美分:material-UI 的架构 (material-ui.com/styles/basics) 传递和合并
classes(其骨干是 JSS),如果使用得当,绝对令人愉快。我讨厌将类似 css 的道具传递给组件,但我在传递类时完全没有问题。
标签: javascript css reactjs css-in-js