我正在尝试了解两者之间的最佳选择(作为CTO)
由于这是一个非常主观的话题,所以我将尽量不要提出“太宽”或“离题”的问题。如果没有人回答整个问题,我会尝试自己回答(这里)这个问题,我会问非常封闭的问题:
<style>
标签,style=
属性)?请不要关闭这个问题,所以我不需要一些代码风格的意见,并且我想避免主观的观点。
答案 0 :(得分:6)
一个很简短的答案(通常还有很多其他答案)
SC在运行时使用CSS解析模板字符串。 Emotion有一个babel插件,可以以可以更快地在运行时呈现最终CSS的格式来准备这些已解析的内容。 JSS当前仅支持basic template strings,否则使用对象(有计划增加对模板字符串的支持)
当您更新动态样式时,SC和Emotion会生成新的CSS规则,JSS将更新现有规则(请注意,您可以在开发工具的样式标签中看到更新后的规则,但在样式标签中看不到):reproduction >
SC仅起反应。 Emotion的语法无需反应即可使用(css``)。 JSS有单独的软件包:jss(核心,无反应),react-jss(HOC注入类),样式化jss(类似于SC的API)。
当前只有JSS支持插件。
静态提取
当前只有Emotion支持完全静态提取。 JSS也在努力。 如果您将样式放入单独的文件(something.styles.js)中,然后使用webpack插件提取它们(尽管没有动态值),今天就可以使用JSS进行静态提取。
性能
http://necolas.github.io/react-native-web/benchmarks/
答案 1 :(得分:0)