难度级别:中级及以上 提问概率:65%
很多前端开发人员习惯了Vue或者React的组件式开发,熟知组件的周期过程包含初始化、挂载完成、修改和卸载等阶段。但是当使用Hooks做业务开发的时候,看见一个个useEffect函数,却显得有些迷茫,因为在useEffect中,不需要定义那些生命周期的钩子函数了,那么怎么知道组件走到哪一个周期了呢?我们一起来看一下。
useEffect其实可以看做是componentDidMount、componentDidUpdate和componentWillUnmount这3个周期的结合展现,也就是说在useEffect函数内,可以通过一定的控制达到这3个生命周期的结合效果。useEffect接收两个参数,第一个参数是一个函数,重点在于第二个参数。第二个参数是非必填的,它是一个数组,主要通过第二个参数来控制useEffect的阶段。
例如要实现componentDidMount,我们知道componentDidMount是在组件初始化阶段才会被调用,在组件后续的更新和卸载阶段并不会执行,可以通过给useEffect函数的第二个参数传递空数组的方