⊗jsrtPmHkUEGH 6 of 47 menu

Globalni obdelovalci prek useEffect v Reactu

Recimo, da zdaj želimo, da se barva spremeni ne le ob kliku na gumb, temveč tudi ob pritisku tipke Enter na tipkovnici. V običajnem React razvoju ne moremo neposredno poslušati globalnega objekta window z uporabo addEventListener. Za to imamo efekte. Dodajmo to funkcionalnost s pomočjo useEffect.

Napišimo funkcijo obdelovalca za pritisk tipke Enter. Naj se barva v tem primeru spremeni v rdečo:

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

Povežimo zdaj poslušanje dogodkov na window v hooku useEffect:

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

Če imamo kakšno nastavitveno funkcijo, moramo vedno v useEffect vrniti kodo za čiščenje ali odjavo, da se izognemo težavam v prihodnosti. V tem primeru moramo po dodajanju addEventListener vrniti njegovo odstranjevanje:

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

Podan je komponent. Naredite tako, da ob kliku na katero koli mesto strani ozadje tega komponenta spremeni barvo.

Naredite povezavo, ob kliku na katero se bo prikazal blok. Naredite tako, da ob kliku na katero koli mesto okna brskalnika se naš blok skrije.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni