⊗jsrtPmHkUEGH 6 of 47 menu

Globale event handlers via useEffect in React

Stel dat we nu willen dat de kleur niet alleen verandert bij een klik op de knop, maar ook bij het indrukken van Enter op het toetsenbord. In een normale React-omgeving kun je het globale object window niet beluisteren met behulp van addEventListener. Hiervoor hebben we effects. Laten we deze actie toevoegen met useEffect.

Laten we een handlerfunctie schrijven voor de klik op Enter. Laat de kleur in dit geval veranderen in rood:

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

Laten we nu het luisteren naar events koppelen aan window in de useEffect hook:

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

Als we een setup-functie hebben, moeten we altijd in useEffect een cleanup-functie retourneren om problemen in de toekomst te voorkomen. In dit geval moeten we na het toevoegen van addEventListener het verwijderen retourneren:

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

Er is een component gegeven. Zorg ervoor dat bij een klik op een willekeurige plaats op de pagina de achtergrond van dit component van kleur verandert.

Maak een link, waarop wanneer geklikt wordt er een blok verschijnt. Zorg ervoor dat wanneer er ergens in het browservenster geklikt wordt ons blok verborgen wordt.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren