⊗jsrtPmHkUEGH 6 of 47 menu

React-də useEffect vasitəsilə Qlobal İşləyicilər

Təsəvvür edək ki, indi istəyirik ki, rəng yalnız düyməyə klikləməklə deyil, həm də klaviaturda Enter düyməsinə basılmaqla dəyişsin. Adi React həyatında window qlobal obyektini addEventListener istifadə edərək dinləmək olmaz. Bunun üçün bizdə efektlər var. Gəlin bunu useEffect vasitəsilə əlavə edək.

Gəlin Enter düyməsinə basılma hadisəsini əmələ gətirən funksiya yazaq. Fərz edək ki, rəng bu halda qırmızıya dəyişir:

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

İndi hadisə dinləməni useEffect hookunda window-a bağlayaq:

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

Əgər bizim hansısa quraşdırma funksiyamız varsa, onda biz həmişə useEffect-də təmizləmə və ya abunəni dayandırma kodunu qaytarmalıyıq ki, gələcəkdə problemlərin qarşısını alaq. Bu halda biz addEventListener əlavə etdikdən sonra onun silinməsini qaytarmalıyıq:

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

Komponent verilib. Elə edin ki, səhifənin istənilən yerinə kliklənəndə bu komponentin fon rəngi dəyişsin.

Bir link hazırlayın, ona kliklənəndə blok görünsün. Elə edin ki, brauzer pəncərəsinin istənilən yerinə kliklənəndə blokumuz gizlinsin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et