在 useEffect 中,不提供依赖数组和空数组有什么区别?

新手上路,请多包涵

我收集到 useEffect 钩子在每次渲染后运行,如果提供了一个空的依赖数组:

 useEffect(() => {
  performSideEffect();
}, []);

但是,这与以下有什么区别?

 useEffect(() => {
  performSideEffect();
});

注意末尾缺少 [] 。 linter 插件不会发出警告。

原文由 Paul Razvan Berg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

不太一样。

  • 给它一个空数组就像 componentDidMount 一样,它只运行一次。

  • 不给它第二个参数充当 componentDidMountcomponentDidUpdate ,因为它首先在装载时运行,然后在每次重新渲染时运行。

  • 给它一个数组作为第二个参数,其中包含任何值,例如 , [variable1] 只会执行 useEffect 在挂载时挂钩 ONCE 中的代码,以及每当该特定变量(variable1)更改时.

您可以在 https://reactjs.org/docs/hooks-effect.html 阅读更多关于第二个参数以及钩子如何在官方文档上实际工作的更多信息

原文由 bamtheboozle 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进