我收集到 useEffect
钩子在每次渲染后运行,如果提供了一个空的依赖数组:
useEffect(() => {
performSideEffect();
}, []);
但是,这与以下有什么区别?
useEffect(() => {
performSideEffect();
});
注意末尾缺少 []
。 linter 插件不会发出警告。
原文由 Paul Razvan Berg 发布,翻译遵循 CC BY-SA 4.0 许可协议
我收集到 useEffect
钩子在每次渲染后运行,如果提供了一个空的依赖数组:
useEffect(() => {
performSideEffect();
}, []);
但是,这与以下有什么区别?
useEffect(() => {
performSideEffect();
});
注意末尾缺少 []
。 linter 插件不会发出警告。
原文由 Paul Razvan Berg 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.3k 阅读
1 回答1.1k 阅读
1 回答1k 阅读
不太一样。
给它一个空数组就像
componentDidMount
一样,它只运行一次。不给它第二个参数充当
componentDidMount
和componentDidUpdate
,因为它首先在装载时运行,然后在每次重新渲染时运行。给它一个数组作为第二个参数,其中包含任何值,例如
, [variable1]
只会执行useEffect
在挂载时挂钩 ONCE 中的代码,以及每当该特定变量(variable1)更改时.您可以在 https://reactjs.org/docs/hooks-effect.html 阅读更多关于第二个参数以及钩子如何在官方文档上实际工作的更多信息