useEffect React钩子将在每次更改时运行传入函数。可以对其进行优化,使其仅在所需属性更改时调用
如果我想从componentDidMount
调用一个初始化函数,并且在发生更改时不再调用它,该怎么办?假设我想加载一个实体,但加载函数不需要来自组件的任何数据。我们如何使用useffect
hook实现这一点
类MyComponent扩展了React.PureComponent{
componentDidMount(){
loadDataOnlyOnce();
}
render(){…}
}
使用钩子时,可以如下所示:
函数MyComponent(){
使用效果(()=>{
loadDataOnlyOnce();//每次更改都会触发此操作:(
}, […???]);
回报率(…);
}
如果只想在初始渲染后运行指定给useffect
的函数,可以将空数组作为第二个参数
函数MyComponent(){
使用效果(()=>{
loadDataOnlyOnce();
}, []);
返回<;div>;{/*…*/}<;/div>;;
}