我已经进入styled-components软件包,我认为开发人员友好性很棒!
然而,我担心一件事: Flash of Unstyled Content 。
从生产开始到开发过程中,样式都与javascript块打包在一起;加载组件时,会生成样式并附加<head>
的底部(在底部)
这本质上与CSS模块的工作方式相同。
参考surviveJS的帖子,我学会了在生产构建步骤中使用ExtractTextPlugin创建单独的样式表(css文件)。
然而,在styled-components
CSS只是JS,所以我们不能使用这种技术(至少,我无法让它工作)。
所以在我开始使用样式组件构建我的下一个项目之前,有人会把我的烦恼带走吗?
答案 0 :(得分:1)
如果您不想让您的UI闪存 - 您需要从服务器发送样式而不是使用JS渲染。幸运的是,styled-componnets
库支持服务器渲染API,即使此时它还不公开。
您可以在服务器上预渲染样式,并注入您从服务器发送的初始html,因此它将包含CSS并且UI不会闪现。
正如我所提到的,API尚未公开,但您可以使用它。关于Github的讨论有多个,请检查:this,this和more issues。我想公共API应该在v2版本中准备就绪。
所以基本上使用styled-components
来阻止闪烁应该没有问题。
答案 1 :(得分:0)
SSR即将推出v2,您今天就可以开始使用了。这是一个如何做的例子。
https://github.com/styled-components/styled-components/blob/v2/example/ssr.js