useEffect这个钩子函数是用来模拟生命周期函数的。调用这个函数的时候他的第一个参数必须是一个函数,每一次render之后执行副作用和清除上一次副作用,该函数的返回值就是清除函数。第二个参数可以不传,也可以传递一个数组。
第二个参数不传,代表监听所有的属性更新,可以模拟componentDidUpdate
useEffect(()=>{console.log('任意属性该改变')})
第二个参数为一个空数组,可以模拟componentDidMount
useEffect(()=>{console.log('第一次渲染时调用')},[])
返回值是函数可以模仿模拟componentWillUnmount
useEffect(()=>{
const timer = setTimeout(()=>{
...
},1000)
return()=>{
console.log('组件销毁')
clearTimerout(timer)
}
})