⊗jsrtPmHkUEGH 6 of 47 menu

გლობალური დამმუშავებლები useEffect-ის საშუალებით React-ში

დავუშვათ, რომ ახლა გვსურს, რომ ფერი შეიცვალოს არა მხოლოდ ღილაკზე დაჭერისას, არამედ კლავიატურაზე Enter დაჭერისას also. ჩვეულებრივ 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]);

მოცემულია კომპონენტი. გახადეთ ისე, რომ გვერდის ნებისმიერ ადგილას დაწკაპუნებისას ამ კომპონენტის ფონის ფერი შეიცვალოს.

გააკეთეთ ბმული, რომლის დაჭერისას გამოჩნდეს ბლოკი. გახადეთ ისე, რომ ბრაუზერის ფანჯარაში ნებისმიერ ადგილას დაწკაპუნებისას ჩვენი ბლოკი დაიმალოს.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČ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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა