CSS Modules
通过编译生成全局唯一类名,完全不用担心冲突 写样式就可以全部扁平,不再需要嵌套 从组件找 CSS 容易,沿着 import 去找就行 语法比较定制,有点怪 Styled Components / Emotion / JSS 等 CSS-in-JS 方案
Emotion css
不用再想样式类名了,有 JSX 组件名就行 同样是会生成全局唯一类名,不用担心冲突 不用 CSS, JSX 之间跳来跳去,一个文件搞定 市面上方案太多了,万一选择的方案被淘汰,就会带来维护风险 原本一句简单 HTML 的事情,为了样式非要变成组件,感觉是过度抽象 适合做组件库时使用,直接交付一个 JS 就完事了,样式都是从 JS 释放出来的 不太适合做普通应用,样式都由 JS 动态释放,CSS 没法抽出来就没法利用浏览器缓存
/* Don't do this */
`class=${[styles.normal, styles['in-progress']].join(" ")}`
/* Using a single name makes a big difference */
`class=${styles['in-progress']}`