我想知道useEffect
钩子清理函数何时在react中被调用,它是在依赖项更改时被调用还是在组件卸载时被调用。
例如在我的组件中,如果我有useEffect
useEffect(()=>{
return ()=>{
//clean up function code
} //clean up function
},[dependency])
将在dependency
上调用清除函数,或者在卸载组件时调用它。
答案 0 :(得分:3)
当您通过dependency
时,它将清除所有情况(卸载和更改依赖项):
React何时能准确清除效果? Ref
React在组件卸载时执行清理。但是,正如我们 早先了解到,效果会为每个渲染运行,而不仅仅是一次。这个 这就是为什么React还会在之前清除之前渲染中的效果 下次运行效果。
答案 1 :(得分:0)
只需添加@Vivek Doshi答案。 useEffect是componentDidMount
,componentDidUpdate
和componentWillUnmount
组合的同义词。该效果将在第一次渲染时运行,所有后续的渲染都将重新渲染(除非提供了条件)。
在卸载组件时运行清理。
为避免意外的错误,在运行新效果之前,react将清除效果。您可以使用此sandbox
玩转并掌握概念