⊗jsrtPmHkUEGH 6 of 47 menu

React да useEffect орқали глобал обработчиклар

Фарз қилайлик, энди биз фақатгина тугмага босилгандагина эмас, балки клавиатурада Enter тугмаси босилганда ҳам ранг ўзгарсинчи. Одатдаги React хаётида глобал window объектини addEventListener ёрдамида тинган бўлмайди. Бунинг учун бизда эффектлар мавжуд. Келинг бу ҳаракатни useEffect ёрдамида қўшайлик.

Enter тугмаси босилгандаги функция обработчини ёзайлик. Ранг бу ҳолда қизил рангга ўзгарсин:

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

Энди ҳодисаларни тинган бўлишни window га useEffect хукида боглаймиз:

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

Агар бизда қандайдир ўрнатиш функцияси бўлса, у ҳолда useEffect да ҳар доим тозалаш кодини қайтаришимиз керак, келажакда муаммолардан қоқилмаслик учун. Ушбу ҳолда бизга addEventListener ни ўрнатилгандан сўнг уни ўчиришни қайтаришимиз керак:

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

Компонент берилган. Саҳифанинг istalgan нуқтасига босилганда ушбу компонентнинг фонининг ранги ўзгарадиган қилинг.

Блок пайдо бўладиган ҳаволa яратинг. Браузер дўзасининг исталган жойига босилганда бизнинг блокимиз яшириниши учун қилинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш