本人github
是的,所有的 useEffect
钩子都会在组件首次渲染到屏幕上时执行。这类似于类组件中的 componentDidMount
生命周期方法。useEffect
的目的是让你在函数组件中执行副作用。
useEffect
钩子接受两个参数:一个函数和一个依赖数组。函数包含你想要运行的副作用代码,依赖数组告诉React哪些外部变量的变化应该触发钩子再次运行。
- 如果你不提供依赖数组,
useEffect
将在每次组件渲染后运行,包括首次渲染和随后的更新。
useEffect(() => {
// 你的代码
});
- 如果你提供了一个空的依赖数组,
useEffect
将仅在组件首次渲染后运行,类似于componentDidMount
。
useEffect(() => {
// 你的代码
}, []);
- 如果你提供了一个包含变量的依赖数组,
useEffect
将在组件首次渲染后以及任何依赖项变化时运行,类似于componentDidMount
和componentDidUpdate
的组合。
useEffect(() => {
// 你的代码
}, [yourVariable]);
通过适当地选择是否提供依赖数组以及依赖数组的内容,你可以控制 useEffect
钩子何时运行,以及它如何响应组件和外部变量的变化。