O gancho useEffect React executará a função passada em todas as alterações. Isso pode ser otimizado para permitir a chamada somente quando as propriedades desejadas forem alteradas.
E se eu quiser chamar uma função de inicialização componentDidMount
e não chamá-la novamente nas alterações? Digamos que eu queira carregar uma entidade, mas a função de carregamento não precisa de nenhum dado do componente. Como podemos fazer isso usando o useEffect
gancho?
class MyComponent extends React.PureComponent {
componentDidMount() {
loadDataOnlyOnce();
}
render() { ... }
}
Com ganchos, pode ser assim:
function MyComponent() {
useEffect(() => {
loadDataOnlyOnce(); // this will fire on every change :(
}, [...???]);
return (...);
}