问答题1263/1593React Hooks当中的useEffect是如何区分生命周期钩子的

难度:
2021-07-04 创建

参考答案:

useEffect可以看成是 componentDidMountcomponentDidUpdatecomponentWillUnmount 三者的结合。

useEffect(callback, [source])接收两个参数,调用方式如下:

1useEffect(() => { 2 console.log('mounted'); 3 4 return () => { 5 console.log('willUnmount'); 6 } 7 }, [source]);

生命周期函数的调用主要是通过第二个参数[source]来进行控制,有如下几种情况:

  • [source]参数不传时,则每次都会优先调用上次保存的函数中返回的那个函数,然后再调用外部那个函数;
  • [source]参数传[]时,则外部的函数只会在初始化时调用一次,返回的那个函数也只会最终在组件卸载时调用一次;
  • [source]参数有值时,则只会监听到数组中的值发生变化后才优先调用返回的那个函数,再调用外部的函数。

最近更新时间:2024-08-10

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!