Хук useEffect React будет запускать переданную функцию при каждом изменении. Это можно оптимизировать, чтобы он вызывался только при изменении желаемых свойств.
Что если я хочу вызвать функцию инициализации из componentDidMount
и не вызывать ее снова при изменениях? Допустим, я хочу загрузить объект, но функция загрузки не требует никаких данных от компонента. Как мы можем сделать это, используя хук useEffect
?
class MyComponent extends React.PureComponent {
componentDidMount() {
loadDataOnlyOnce();
}
render() { ... }
}
С крючками это может выглядеть так:
function MyComponent() {
useEffect(() => {
loadDataOnlyOnce(); // this will fire on every change :(
}, [...???]);
return (...);
}