- 组件驱动思想。你的CSS现在也是一个组件。- 这非常酷!
- 按需加载,懒加载CSS。
- 主题提供程序、皮肤、模块化和动态性 - 这也可以通过其他库实现。
- 服务器端构建您的组件DOM及其样式。
浏览器已经演变到将CSS与Javascript分开解析,为什么我们要偏离这一点并将所有内容都放在Javascript中?
Styled-component CSS将其Javascript库发送到客户端,实际上是在运行时解析样式并将其放置在
<style />
标签中,当每个组件按需加载时。这意味着额外的负载和逻辑最终会导致浏览器执行周期。为什么需要这样做?(通过上述问题,我的意思是对于每个加载的组件,相应的CSS都会被计算、创建并插入到头部,通过
style
标签/多个样式标签 - 重新发明CSS解释器)连续计算的样式文本通过
<style />
在头部标签中引起浏览器回流/重绘吗?我从中获得了哪些性能优势?
使用像Post-CSS和SCSS classname hashing这样的附加库/选项进行动态类名,这几乎解决了每个人都提出的问题。为什么还要使用SC?
社区,请为我澄清或纠正我的错误。
有一些很好的文章讨论了当CSS样式被修改时,重新绘制或DOM重排如何对浏览器的性能产生影响。
- https://developers.google.com/speed/articles/reflow
- http://www.stubbornella.org/content/2009/03/27/reflows-repaints-css-performance-making-your-javascript-slow/
- https://www.sitepoint.com/10-ways-minimize-reflows-improve-performance/
- https://www.phpied.com/rendering-repaint-reflowrelayout-restyle/
- https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information