⊗jsrtPmHkUEGH 6 of 47 menu

React में useEffect के माध्यम से ग्लोबल हैंडलर्स

मान लीजिए कि अब हम चाहते हैं कि रंग केवल बटन पर क्लिक करने से ही नहीं, बल्कि कीबोर्ड पर Enter दबाने से भी बदले। सामान्य React जीवन में ग्लोबल ऑब्जेक्ट window को addEventListener का उपयोग करके सुनना संभव नहीं है। इसके लिए हमारे पास इफेक्ट्स हैं। आइए useEffect की सहायता से इस एक्शन को जोड़ें।

आइए Enter दबाने पर हैंडलर फ़ंक्शन लिखें। मान लीजिए कि इस स्थिति में रंग लाल में बदल जाता है:

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

आइए अब useEffect हुक में window से इवेंट लिसनिंग बांधें:

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çaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें