useEffect Hook 可以让你在函数组件中执行副作用 类似组件的生命周期钩子
可以 把useEffect 看做 componentDidMount componentDidUpdate componentWillUnmount
这三个生命周期。
useEffect(()=> {}, [])
useEffect 接收两个参数
参数1: 函数:
当第二个参数存在的时候且为[],参数1 这个函数就代表了 生命周期钩子函数 componentDidMount,只在初始化的时候调用;
当第二个参数中有state 中定义的值的时候,这个函数代表了componentDidMount
当数组中的那个定义的值改变的时候,会再次触发这个函数,就相当于conponentDidUpdate
当第二个参数不存在的时候,参数1 这个函数就代表了生命周期钩子函数的 componentDidMount, componentDidUpdate, 初始化和更新的时候都会调用这个函数
当参数1 返回一个函数的时候,返回的这个函数就代表 componentWillUnmount,react 会在组件卸载的时候执行这个操作;
参数2:[]: 是一个数组, 有监测的功能,
数组为空表示所有state 状态都被检测,
数组中有 state 中定义的值的时候,那个值的变换会触发生命周期钩子函数 componentDidUpdate, 其余的state 中定义的值 改变不会触发 componentDidUpdate。