风格组件:担心FOUC

时间:2017-03-12 08:17:53

标签: reactjs webpack styled-components

我已经进入styled-components软件包,我认为开发人员友好性很棒!

然而,我担心一件事: Flash of Unstyled Content

从生产开始到开发过程中,样式都与javascript块打包在一起;加载组件时,会生成样式并附加<head>的底部(在底部) 这本质上与CSS模块的工作方式相同。

参考surviveJS的帖子,我学会了在生产构建步骤中使用ExtractTextPlugin创建单独的样式表(css文件)。

然而,在styled-components CSS只是JS,所以我们不能使用这种技术(至少,我无法让它工作)。

所以在我开始使用样式组件构建我的下一个项目之前,有人会把我的烦恼带走吗?

2 个答案:

答案 0 :(得分:1)

如果您不想让您的UI闪存 - 您需要从服务器发送样式而不是使用JS渲染。幸运的是,styled-componnets库支持服务器渲染API,即使此时它还不公开。

您可以在服务器上预渲染样式,并注入您从服务器发送的初始html,因此它将包含CSS并且UI不会闪现。

正如我所提到的,API尚未公开,但您可以使用它。关于Github的讨论有多个,请检查:thisthismore issues。我想公共API应该在v2版本中准备就绪。

所以基本上使用styled-components来阻止闪烁应该没有问题。

答案 1 :(得分:0)

SSR即将推出v2,您今天就可以开始使用了。这是一个如何做的例子。

https://github.com/styled-components/styled-components/blob/v2/example/ssr.js