useEffect React钩子将在每次更改时运行传入的函数。这可以优化为仅在期望的属性更改时调用它。
如果我想从
如果我想从
componentDidMount
调用初始化函数而不在更改时再次调用它怎么办?假设我想要加载一个实体,但是加载函数不需要组件中的任何数据。我们如何使用useEffect
钩子来实现这一点?class MyComponent extends React.PureComponent {
componentDidMount() {
loadDataOnlyOnce();
}
render() { ... }
}
使用Hooks可以让它看起来像这样:
function MyComponent() {
useEffect(() => {
loadDataOnlyOnce(); // this will fire on every change :(
}, [...???]);
return (...);
}