何时使用useEffect钩子清理函数在react中被调用

问题描述 投票:1回答:2

我想知道何时useEffect钩子清理函数在react中被调用,它是在依赖项更改时被调用还是在卸载组件时被调用。

例如在我的组件中,如果我有useEffect

useEffect(()=>{

  return ()=>{ 
             //clean up function code

             }  //clean up function

},[dependency])

将在dependency上调用清除函数,或者在卸载组件时调用它。

reactjs react-hooks use-effect
2个回答
3
投票

当您通过dependency时,它将清除所有情况(卸载和更改依赖项):

React何时确切清除效果? [Ref

React在组件卸载时执行清理。但是,正如我们 早先了解到,效果会在每个渲染中运行,而不仅仅是一次。这个 这就是为什么React还会在之前清除以前渲染中的效果 下次运行效果。


0
投票

只需添加@Vivek Doshi答案。 useEffect是componentDidMountcomponentDidUpdatecomponentWillUnmount组合的同义词。该效果在第一次渲染,所有后续重新渲染(除非提供条件的情况下)以及卸载组件时运行。

为了避免意外的错误,在运行新效果之前,react将清除效果。您可以使用[sandbox

玩转并掌握概念
© www.soinside.com 2019 - 2024. All rights reserved.