先回忆一下:
class组件
中的componentDidUpdate生命周期是初次渲染完后,当接收的props,state改变时或者this.forceUpdate()就会调用函数组件
中的useEffect可以看做 componentDidMount,componentDidUpdate
和componentWillUnmount 这三个函数的组合
useEffect( ()=>{ } )
只有
第一个参数的时候
此时相当于componentDidMount + componentDidUpdate钩子的组合,初次渲染并且状态改变时都会触发
需求:
那么我想通过useEffect模拟componentDidUpdate生命周期
,而去掉初次渲染时调用的 componentDidMount
useRef实现
因为初次渲染只会发生一次,可以使用useRef立一个flag解决:
const mounting = useRef(true);
useEffect(() => {
if (mounting.current) {
console.