以下是用了各种都用了很多年的主观感受:
用 Tailwind 效率提升 500%. 因为写代码的最高境界就是几乎不写代码.
如果倾向 CSS in JS 还有个 Twin, 跟 Tailwind 一样的.
这个东西看起来有点 low, 感觉十年前就很多类似的做法, 但大多都不好用. 但 Tailwind 实际上很好用, 和其他类似的方案都很微妙的, 魔鬼都在细节里.
---
用 Styled 类似的方式或者其他 CSS-in-JS 效率提升 50%.
因为写 CSS class 再在 HTML 用 class 本质上是一个 correlation 的过程, 但是现在都已经组件化了, 等于这种 correlation 的工作翻倍了, 在组件原地定义就消灭了这种工作. 而还比较鼓励你设计好组件.
缺点是和已有大量用选择器的项目放在一起的时候会互相打架, 用起来比较尴尬.
---
此外 BEM 还行, 效率不会提升因为比较繁琐, 但是正确应用可以避免很多坑.
类似 SASS 的预处理器的问题就是很多项目用了 SASS 嵌套会特别爽, 然后人们就会无脑嵌套. 最后发现不仅优先级很乱且没法覆盖, 而且你在嵌套的过程中其实已经重复了一遍 HTML 的嵌套逻辑, 那么当你移动 HTML 的结构的时候所有的样式都会失效.
相比之下 BEM 刻意总维持 2 层结构, 既解决了命名空间的问题, 又解决
感觉 SASS 之类唯一比较有价值的是类似 mixin 的功能, 这样可以把样式拆小复用. 纯 CSS 没有 @
apply 的情况拆小就要在 HTML 上无限重复, 改动的时候很容易漏.