useEffect 是一个 React Hook 函数,用于在 React组件中创建不是由事件引起而是由渲染本身引起的操作,比如发送Ajax请求,更改DOM等等。
useEffect副作用函数的执行时机存在多种情况,根据传入依赖项的不同,会有不同的执行表现。
依赖项 | 副作用函数执行时机 |
---|---|
没有依赖项 | 组件初始渲染 + 组件更新时执行 |
空数组依赖 | 只在初始渲染时执行一次 |
添加特定依赖项 | 组件初始渲染 + 特定依赖项变化时执行 |
组件初始渲染 + 组件更新时执行
只在初始渲染时执行一次
组件初始渲染 + 特定依赖项变化时执行
在 useEffect 中编写的 由渲染本身引起的对接组件外部的操作,社区也常常把它叫做副作用操作,比如在 useEffect中开起了一个定时器,我们想在组件卸载时把这个定时器再清理掉,这个过程就是清理副作用。
清除副作用的函数最常见的时机是在组件卸载时自动执行。
:::