useEffect React hak będzie działać w funkcji przekazany na każdej zmianie. Można to zoptymalizować, aby zadzwonił tylko wtedy, gdy zmienią się pożądane właściwości.
Co zrobić, jeśli chcę wywołać funkcję inicjowania componentDidMount
i nie wywoływać jej ponownie w przypadku zmian? Powiedzmy, że chcę załadować jednostkę, ale funkcja ładowania nie potrzebuje żadnych danych z komponentu. Jak możemy to zrobić za pomocą useEffect
haka?
class MyComponent extends React.PureComponent {
componentDidMount() {
loadDataOnlyOnce();
}
render() { ... }
}
W przypadku haków może to wyglądać tak:
function MyComponent() {
useEffect(() => {
loadDataOnlyOnce(); // this will fire on every change :(
}, [...???]);
return (...);
}