Next.js 13开发环境页面双重渲染问题求助
Next.js 13开发环境下组件双重渲染问题
说明: 此问题与另一React相关问题有关,但在Next.js中的解决方案存在差异。
我使用Next.js 13搭建的项目中遇到双重渲染问题:通过create-next-app创建的项目,执行next dev启动开发环境时,页面总是渲染两次:
// 项目由`create-next-app`生成 // pages/index.js import { useEffect, useState } from 'react' export default function Home() { console.log('render') const [state, setState] = useState(() => { console.log('state initialize'); return 'state'; }) useEffect(() => { return () => { console.log('unmounted') } }, []) return ( <div> Home </div> ) }

甚至惰性状态初始化也执行两次,最后还会触发卸载日志。我认为这并非重新挂载,而是组件被创建了两次。但执行next build && next start启动生产环境时,页面仅渲染一次,表现正常。
期望行为
在next dev开发环境中,页面仅渲染和初始化一次。
内容的提问来源于stack exchange,提问作者Ruben Santana
相关产品推荐
相关产品推荐

