以下这代码是用npx create-react-app生成,为了说明问题,删除了一些无关紧要的代码.
这段代码在npm run dev开发环境下,并且用React.StrictMode包裹的话,会触发useEffect的return,我觉得这是不应该发生的.
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
)
于是把React.StrictMode删除,就会变得正常
root.render(
<App />
)
并且我还发现,React.StrictMode搭配npm run build时,依然正常,如下图
所以React.StrictMode会给开发时造成困扰?组件没有重新渲染的情况下,useEffect的return函数应该不执行才对
18之后严格模式useEffect会执行两次