如何只调用一次带有React useEffect的加载函数

useEffect React钩子将在每次更改时运行传入函数。可以对其进行优化,使其仅在所需属性更改时调用

如果我想从componentDidMount调用一个初始化函数,并且在发生更改时不再调用它,该怎么办?假设我想加载一个实体,但加载函数不需要来自组件的任何数据。我们如何使用useffecthook实现这一点

类MyComponent扩展了React.PureComponent{
componentDidMount(){
loadDataOnlyOnce();
}
render(){…}
}

使用钩子时,可以如下所示:

函数MyComponent(){
使用效果(()=&gt{
loadDataOnlyOnce();//每次更改都会触发此操作:(
}, […???]);
回报率(…);
}

如果只想在初始渲染后运行指定给useffect的函数,可以将空数组作为第二个参数

函数MyComponent(){
使用效果(()=&gt{
loadDataOnlyOnce();
}, []);
返回<div>{/*…*/}</div>;
}

发表评论