SSR页面加载时出现样式闪烁,怎么解决?
我在用 Next.js 做 SSR 渲染时,首页首次加载会先显示无样式的 HTML,然后才突然“跳”出 CSS,看起来很卡。明明 CSS 是内联在 head 里的,也用了 styled-jsx,但还是有 FOUC(Flash of Unstyled Content)。
我试过把关键样式提取出来放 <style> 标签里,也检查了是不是动态导入导致的,但问题还在。下面是我写的一个简单按钮样式:
.primary-btn {
background: #3b82f6;
color: white;
border: none;
padding: 8px 16px;
border-radius: 4px;
font-size: 14px;
}
这种 SSR 下的样式闪烁到底该怎么彻底解决?
styled-jsx/babel插件,或者在 next.config.js 里启用compiler: { styledJsx: true }。如果配置没问题但还闪烁,直接在
_document.js的里手动内联你的按钮样式: