React 18 useEffect执行了两次
Others 2022-08-19 07:38:22 2022-08-19 07:38:22 1170 次浏览
useEffect
在以下两种情况下会执行两次。
仅在开发模式下:这是每个人本地开发时构建应用的模式。
在严格模式下:这个是在使用
create-react-app
或者Next.js
构建应用时的默认模式。
阻止 useEffect
执行两次的方法只有一个,那就是 关闭严格模式
在 Next.js 中
你可以在 next.config.js
配置文件中关闭严格模式:
reactStrictMode: false
在 create-react-app 中
import React, { StrictMode } from 'react'; import { createRoot } from 'react-dom/client';import App from './App';
const rootElement = document.getElementById('root'); const root = createRoot(rootElement);
root.render( <StrictMode> <App /> </StrictMode> );
<p>
<br />
</p>
<p>
修改为
</p>
import React from 'react'; import { createRoot } from 'react-dom/client';import App from './App';
const rootElement = document.getElementById('root'); const root = createRoot(rootElement);
root.render( <App /> );
作者:酱豆腐精
Links: 563