在React的函数组件中,useEffect的作用其实也对标了类组件中的生命周期,它的四种使用格式也与生命周期的四种钩子函数形成着对应关系。
使用格式一:不带参数的情况
执行时机:(1)初始执行 (2)每次页面更新之后都要执行
useEffect( () => {
//执行函数
})
对应关系:componentDidMount + componentDidUpdate
使用格式二:带第二个参数,参数为空数组
执行时机:只执行第一次(初始执行)
useEffect( () => {
//执行函数
}, [] )
对应关系:componentDidMount
使用场景:事件绑定、发起ajax请求
使用格式三:带第二个参数,并且指定了依赖项
执行时机:只执行第一次(初始执行)
useEffect( () => {
//执行函数
}, [] )
对应关系:componentDidMount
使用场景:事件绑定、发起ajax请求
使用格式四:依赖项为空,没有具体的副作用函数.但是有副作用函数的清理函数.
执行时机:组件销毁时
useEffect( () => {
return () => { 清理函数 }
}, [] )
对应关系:componentWillUnMount
使用场景:组件销毁时,清除遗留的事件绑定和定时器.