⊗jsrtPmHkUEGH 6 of 47 menu

Gestionarii globali prin useEffect în React

Să presupunem că acum vrem ca culoarea să se schimbe nu doar la click pe buton, ci și la apăsarea tastei Enter de pe tastatură. În mod normal în React, a asculta obiectul global window folosind addEventListener nu este permis. Pentru asta avem efecte. Haideți să adăugăm această acțiune folosind useEffect.

Să scriem funcția gestionară la click pe Enter. Fie ca culoarea în acest caz să se schimbe în roșu:

function handleEnter(event) { if (event.keyCode === 13) { setColor('red'); } }

Să legăm acum ascultarea evenimentelor de window în hook-ul useEffect:

useEffect(() => { document.body.style.color = color; window.addEventListener('keydown', handleEnter); }, [color]);

Dacă avem o funcție de instalare, atunci întotdeauna trebuie în useEffect să returnăm codul de curățare sau dezabonare, pentru a evita problemele ulterioare. În acest caz, după atașarea addEventListener trebuie să returnăm eliminarea acestuia:

useEffect(() => { document.body.style.color = color; window.addEventListener('keydown', handleEnter); return () => { window.removeEventListener('keydown', handleEnter); }; }, [color]);

Este dat un component. Faceți astfel încât la click în orice loc al paginii, fundalul acestui component să își schimbe culoarea.

Creați un link, la apăsarea căruia va apărea un bloc. Faceți astfel încât la apăsarea în orice loc al ferestrei browser-ului blocul nostru să se ascundă.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge