执行和清除Effect的时机
React 何时清除 effect? React 会在组件卸载的时候执行清除操作。众所周知,effect 在每次渲染的时候都会执行,而这就是为什么 React 会在执行当前 effect 之前对上一个 effect 进行清除,因为这有助于避免Bug,这是React的默认行为。
原因:为什么每次更新的时候都要运行 Effect
如果你已经习惯了使用 class,那么你或许会疑惑为什么 effect 的清除阶段在每次重新渲染时都会执行,而不是只在卸载组件的时候执行一次。
例如订阅好友在线状态的组件: