【发布时间】:2020-07-10 13:49:42
【问题描述】:
我正在尝试通过为 Nextjs 应用程序导入 _app.js 中的 .scss 文件来应用全局样式。
但问题是,样式并没有在页面加载时预先应用。因此,所有初始页面渲染都会发生 FOUC。
示例 1
以下是上述问题的基本版本:
项目结构:
pages/
_app.js
index.js
app.scss
package.json
index.js 文件:
export default function Home() {
return (
<div className="hello">
<p>Hello World</p>
</div>
);
}
_app.js 文件:
import "../app.scss";
export default function App({ Component, pageProps }) {
return <Component {...pageProps} />;
}
app.scss 文件:
$color: red;
.hello {
background-color: lavender;
padding: 100px;
text-align: center;
transition: 100ms ease-in background;
&:hover {
color: $color;
}
}
package.json 文件:
{
"name": "basic-css",
"version": "1.0.0",
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "^9.4.5-canary.31", // using canary build as per https://github.com/vercel/next.js/issues/11195
"node-sass": "4.14.1",
"react": "^16.13.1",
"react-dom": "^16.13.1"
},
"license": "ISC"
}
示例 2 (repo using next-sass)
根据@Ramakay 的answer 的第三点
这会创建一个静态散列 css 文件并将其附加到 <head/> 标签,但问题仍然存在。
我的期望:
我现在得到的:
我没有使用任何外部库,例如“styled-components”等。我也没有在寻找它。
我能做些什么来解决手头的问题?
【问题讨论】:
-
你有没有解决过这个问题?它仍然存在于当前版本的 NextJS 中。
-
@MatijaMrkaic 我开始使用 styled-components。
标签: javascript reactjs sass next.js fouc