React的useEffect钩子不加依赖数组、加空依赖数组、加非空依赖数组的区别是什么?

83 阅读1分钟

先来背书:三种useEffect的执行时机

不加依赖数组:

useEffect(() => {
    // do something
});

在componentDidMount(第一次render渲染执行完成)、componentDidUpdate(props、state等发生变化触发重渲染)时执行

加空依赖数组:

useEffect(() => {
    // do something
}, []);

只在componentDidMount时执行

加非空依赖数组:

useEffect(() => {
    // do something
}, [dep1, dep2, dep3]);

在componentDidMount、依赖数组中的变量发生变化时执行