React.useEffect模拟生命周期
-
模拟componentDidMount
第二个参数为空数组,可以模拟compomentDidMount
useEffect(()=>{console.log('第一次渲染时调用')},[])
-
模拟componentDidUpdate
没有第二个参数代表监听所有属性的更新
useEffect(()=>{console.log('任意属性该改变')})
监听多个属性的变化需要将属性作为数组传入第二个参数。
useEffect(()=>{console.log('n变了')},[n,m])
-
模拟componentWillUnmount
通常,组件卸载时需要清除 effect 创建的诸如订阅或计时器 ID 等资源
useEffect(()=>{ const timer = setTimeout(()=>{ ... },1000) return()=>{ console.log('组件销毁了') clearTimerout(timer) } })

浙公网安备 33010602011771号