我永远不会告诉你,在 CSS(或某些语法预处理器)中编写 CSS 是一个坏主意。我认为,无需任何工具,你就可以获得完美的生产力和性能。但是,我也认为,**对于在任何情况下都使用 JavaScript 构建所有组件的代码库中的基于组件的样式来说,在 JavaScript 中编写 CSS 是一个好主意。**
在这篇文章中,Max Stoiber 侧重于**为什么**要在 JavaScript 中编写 CSS 而不是**如何**编写 CSS。其中一个原因与我产生了强烈的共鸣,那就是**信心**。这就是对我而言样式信心的含义。
JavaScript 中的 CSS 并不是解决这些问题的唯一答案,但正如 Max 与主题的其他文章相连接一样,它可以导致自然发生良好选择的情况。
有一些原因是我**不认同**的。性能就是其中之一,比如选择 CSS-in-JS 就是某种自动的性能提升。问题的一部分(我在这里也犯了同样的错误)是 CSS-in-JS 是一系列广泛的解决方案。我**通常**发现 CSS-in-JS 并没有带来很大的性能提升(更有可能是相反的),但如果我们讨论的是像 CSS 模块这样的东西,其中样式被提取并像任何其他 CSS 一样链接起来,那么这就不相关了。
我更熟悉 Elm 生态系统,在那里我们甚至有 Elm UI,它将 HTML 和 CSS 融合在一起,将事物抽象得更远。
https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/
我从 2000 年代初就开始使用 CSS,所以对我来说,以这种方式编写样式信息是很自然的事情。尽管如此,我相信 CSS-in-JS 或更好的 CSS-in-Whatever 还有空间。这真的取决于项目的上下文。