Reaguoti useEffect
kabliukas yra galingas įrankis React kūrėjo arsenale. Tai leidžia atlikti šalutinius funkcinių komponentų efektus, tokius kaip duomenų gavimas, prenumeratos arba rankinis DOM keitimas. Šiuo straipsniu siekiama visapusiškai suprasti useEffect
kabliukas, jo naudojimas ir geriausia praktika.
Kas yra Reaguoti useEffect
?
The useEffect
kabliukas yra React teikiama funkcija, leidžianti tvarkyti šalutiniai poveikiai jūsų funkciniuose komponentuose. Šalutinis poveikis yra bet kokios operacijos, nesusijusios su komponentų atvaizdavimu, pvz., API iškvietimai, laikmačiai, įvykių klausytojai ir kt.
Prieš įvedant kabliukus React 16.8, šalutiniai poveikiai buvo tvarkomi gyvavimo ciklo metodais klasės komponentuose. Tačiau įdiegę kabliukus, dabar galite naudoti savo funkcinių komponentų šalutinį poveikį useEffect
kabliukas.
Pagrindinė naudojimo efekto sintaksė
The useEffect
„hook“ turi du argumentus: funkciją, kurioje apibrėžiate savo šalutinį poveikį, ir priklausomybės masyvą. Funkcija vykdoma po kiekvieno pateikimo, įskaitant pirmąjį, nebent nurodote priklausomybės masyvą.
Priklausomybės masyvas yra būdas nurodyti „React“, kada paleisti efektą. Jei perduodate tuščią masyvą ([]
), efektas bus paleistas tik vieną kartą po pirmojo atvaizdavimo. Jei masyve perduodate kintamuosius, efektas bus rodomas kiekvieną kartą, kai tie kintamieji pasikeis.
Kaip naudoti React useEffect
Naudojant useEffect
kabliukas yra paprastas. Tu skambink useEffect
ir perduoti jam funkciją. Ši funkcija apima jūsų šalutinį poveikį. Pažiūrėkime į pavyzdį:
useEffect(() => {
document.title="Hello, world!";
});
Šiame pavyzdyje mes keičiame dokumento pavadinimą. Tai yra šalutinis poveikis, ir mes naudojame useEffect
jį atlikti.
Naudojant priklausomybių masyvą
Priklausomybės masyvas yra galinga funkcija useEffect
. Tai leidžia jums kontroliuoti, kada veikia jūsų efektas. Štai pavyzdys:
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
}, [count]);
Šiame pavyzdyje efektas veikia kiekvieną kartą, kai pasikeičia skaičiavimo būsena, nes įtraukėme skaičių į priklausomybės masyvą.
Bendro naudojimo atvejai, skirti useEffect
Yra daug naudojimo atvejų useEffect
kabliukas. Štai keletas įprastų.
Duomenų gavimas
Vienas iš labiausiai paplitusių naudojimo atvejų useEffect
yra duomenų gavimas. Tu gali naudoti useEffect
gauti duomenis iš API ir atnaujinti komponento būseną gautais duomenimis.
Renginio klausytojai
Tu gali naudoti useEffect
kad prie komponento pridėtumėte įvykių klausytojų. Tai naudinga tvarkant vartotojo sąveiką, pvz., paspaudimus ar klavišų paspaudimus.
Laikmačiai
useEffect
taip pat naudinga nustatant laikmačius, pvz setTimeout
arba setInterval. Jį galite naudoti norėdami atlikti veiksmą praėjus tam tikram laikui.
Geriausia naudojimo praktika useEffect
Nors useEffect
yra galingas įrankis, svarbu jį tinkamai naudoti, kad išvengtumėte galimų problemų. Štai keletas geriausių praktikų, kurių reikia nepamiršti.
Išvalykite savo efektus
Kad būtų išvengta atminties nutekėjimo, prieš išmontuojant komponentą reikia išvalyti kai kuriuos efektus. Tai ypač pasakytina apie efektus, kurie sukuria prenumeratas arba įvykių klausytojus. Norėdami išvalyti efektą, iš savo efekto galite grąžinti funkciją, kuri atlieka išvalymą.
Norėdami atskirti problemas, naudokite kelis efektus
Jei turite kelis nesusijusius šalutinius poveikius, patartina naudoti kelis useEffect
ragina atskirti rūpesčius. Taip kodą lengviau suprasti ir patikrinti.
Nepamirškite priklausomybės masyvo
Priklausomybės masyvas yra esminė jo dalis useEffect
. Pamiršus jį įtraukti, gali kilti netikėtas elgesys. Į masyvą būtinai įtraukite visus kintamuosius, nuo kurių priklauso jūsų poveikis.
Apibendrinant, React useEffect
hook yra universalus įrankis, leidžiantis valdyti funkcinių komponentų šalutinį poveikį. Suprasdami jo naudojimą ir geriausią praktiką, galite parašyti efektyvesnį ir prižiūrimesnį „React“ kodą.