Middle
Kokius įrankius ir požiūrius galima naudoti useEffect hook'e?
sobes.tech AI
Atsakymas iš AI
- Įrankiai:
- Valymo funkcijos (cleanup functions) prenumeratų atšaukimui, laikmačių nutraukimui ir kt.
- Priklausomybių masyvas (dependencies array) efektų pakartotiniam vykdymui valdyti.
- Refs DOM elementų pasiekti arba keičiamų reikšmių saugojimui be perrenderinimo.
- Individualūs hook'ai sudėtingos efektų logikos organizavimui.
- Požiūriai:
- Naudoti kelis
useEffectlogikai atskirti. - Sąlyginis efektų vykdymas.
useCallbackiruseMemonaudojimas nereikalingam funkcijų ir reikšmių perrenderinimui išvengti.- Asinchroninių operacijų valdymas
async/awaitfunkcijos viduje (pagalbinės asinchroninės funkcijos kūrimas).
- Naudoti kelis
useEffect(() => {
// Efektas: įvykio prenumerata
const handleResize = () => {
console.log('Langas pakeistas');
};
window.addEventListener('resize', handleResize);
// Valymas: įvykio atšaukimas išmontuojant arba keičiant priklausomybes
return () => {
window.removeEventListener('resize', handleResize);
};
}, []); // Tuščias priklausomybių masyvas: efektas vykdomas vieną kartą montuojant
useEffect(() => {
// Efektas: duomenų įkėlimas
async function fetchData() {
const response = await fetch(`/api/data?id=${userId}`);
const data = await response.json();
setData(data);
}
fetchData();
}, [userId]); // Priklausomybė: efektas vykdomas keičiant userId ir montuojant