next.js的_app.js为什么会渲染两遍

109 阅读1分钟

如果是在useEffect(() => {}, [])中执行的,这是由于React 18的Strict Mode导致的。React Strict Mode用于发现组件级别的常见错误,因此React会两次渲染单个组件。第一次渲染是我们期望的,另一次渲染是为了React Strict Mode。在开发阶段,你可能会遇到这个问题,尽管这不是一个问题。这是为了更好的开发体验。在生产阶段,默认情况下不会出现这样的问题。

你可以通过在next.config.js文件中将reactStrictMode设置为false来禁用Strict Mode。这样做可以解决你遇到的问题。以下是一个示例:

const nextConfig = {
  reactStrictMode: false
}

module.exports = nextConfig