Reactjs 在react中何时调用useffect钩子清理函数

Reactjs 在react中何时调用useffect钩子清理函数,reactjs,react-hooks,use-effect,Reactjs,React Hooks,Use Effect,我想知道在react中何时调用useffecthook clean-up函数,它是在依赖项更改时被调用,还是在卸载组件时被调用 例如,如果我有useffect useEffect(()=>{ return ()=>{ //clean up function code } //clean up function },[dependency]) 清理函数将在依赖项时被调用,还是在卸载组件时被调用。当您传递依赖项时,它将在

我想知道在react中何时调用
useffect
hook clean-up函数,它是在依赖项更改时被调用,还是在卸载组件时被调用

例如,如果我有
useffect

useEffect(()=>{

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

             }  //clean up function

},[dependency])

清理函数将在
依赖项时被调用,还是在卸载组件时被调用。

当您传递
依赖项时,它将在两种情况下(卸载和更改依赖项)进行清理:

什么时候反应清除效果?

React在组件卸载时执行清理。然而,正如我们 通过前面的学习,效果将在每次渲染时运行,而不仅仅是一次。这 这就是为什么React还会清除之前渲染的效果 下次运行效果


只是添加了@Vivek Doshi答案。useffect是
componentDidMount
componentdiddupdate
,以及
componentWillUnmount
组合的同义词。效果在第一次渲染时运行,所有后续的重新渲染(除非提供了条件)

组件卸载时将运行清理


为了避免意外错误,react将在运行新效果之前清除效果。你可以通过这个游戏来理解这个概念

我想知道组件是否在每次状态改变时卸载,意味着每次状态改变时组件重新加载是否会导致组件再次卸载和装载,组件是否在每次渲染时卸载?否,
卸载
是不同的事情,
重新渲染
是不同的事情,
umount
将在移除组件时触发,而
re render
是由
props
state
中的更改引起的,以仅更新组件dom@user8989,抱歉,不知道什么意思,当卸载组件时,它也会运行useEffect,据我所知,在卸载组件时,只运行清理功能。我的意思是清理,我对帖子做了更改。谢谢