从字面意思上来看,useEffect 就是使用「影响」,这里的「影响」也可称之为「副作用」。与平时生活中说提到的「副作用」不同,这里的「副作用」是一个中型的词语,表示的并不是有「负面效果」的影响。在这里,对环境的改变即为副作用,比如修改document.title,但是不一定要把所有「副作用」都放在 useEffect 里。
React 会等待浏览器完成画面渲染之后才会延迟调用 useEffect,因此称实际上之为 "afterRender" 更为恰当。在类组件中,与 "afterRender" 对应的生命周期有componentDidMount、componentDidUpdate、componentWillUnmount。函数组件中没有生命周期钩子,而借助 useEffect,就可以在函数组件中实现上面这三种生命周期的效果。
