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