useRef बनाम useState प्रतिक्रिया में
रिएक्ट यूजर इंटरफेस बनाने के लिए एक लोकप्रिय जावास्क्रिप्ट लाइब्रेरी है। यह कई हुक प्रदान करता है जो डेवलपर्स को राज्य का प्रबंधन करने और साइड इफेक्ट करने में सक्षम बनाता है। रिएक्ट में आमतौर पर इस्तेमाल होने वाले दो हुक हैं useRef
और useState
। हालांकि वे पहली नज़र में समान लग सकते हैं, वे अलग-अलग उद्देश्यों की पूर्ति करते हैं और अलग-अलग उपयोग के मामले हैं। इस लेख में, हम उनकी कार्यक्षमताओं की तुलना करने और उनके उपयोग को स्पष्ट करने के लिए उदाहरण प्रदान करते हुए, उनकी गहराई से useRef
खोज करेंगे।useState
समझ useRef
:
useRef
रिएक्ट में हुक एक परिवर्तनशील संदर्भ बनाता है जो घटक रेंडर में बना रहता है । इसके विपरीत useState
, जो राज्य का प्रबंधन करता है और फिर से रेंडरिंग को ट्रिगर करता है, useRef
मुख्य रूप से DOM को एक्सेस और हेरफेर करने के लिए या म्यूटेबल वैल्यू को स्टोर करने के लिए उपयोग किया जाता है जो री-रेंडरिंग को ट्रिगर नहीं करता है। current
यह एक संपत्ति के साथ एक परिवर्तनशील वस्तु लौटाता है ।
उदाहरण 1: DOM तत्वों तक पहुँचना
मान लें कि बटन क्लिक होने पर हम इनपुट फ़ील्ड पर ध्यान केंद्रित करना चाहते हैं। हम इसे useRef
निम्नानुसार प्राप्त कर सकते हैं:
import React, { useRef } from 'react';
function MyComponent() {
const inputRef = useRef(null);
const handleClick = () => {
inputRef.current.focus();
};
return (
<div>
<input ref={inputRef} />
<button onClick={handleClick}>Focus Input</button>
</div>
);
}
समझ useState
:
useState
एक कार्यात्मक घटक के भीतर राज्य का प्रबंधन करने के लिए हुक का उपयोग किया जाता है । यह हमें वेरिएबल्स बनाने की अनुमति देता है जिन्हें अपडेट किया जा सकता है और जब उनके मान बदलते हैं तो फिर से प्रस्तुत करना शुरू कर सकते हैं। हुक useState
दो तत्वों के साथ एक सरणी देता है: वर्तमान स्थिति मान और इसे अद्यतन करने के लिए एक फ़ंक्शन।
उदाहरण 2: एक काउंटर का प्रबंधन
आइए इसका उपयोग करके एक सरल काउंटर घटक बनाएँ useState
:
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
const increment = () => {
setCount(count + 1);
};
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
);
}
तुलना useRef
और useState
:
जबकि दोनों useRef
तथा useState
मूल्यों को संग्रहीत कर सकते हैं, वे विभिन्न उद्देश्यों की पूर्ति करते हैं:
- प्रबंध राज्य:
useState
एक घटक के भीतर राज्य के प्रबंधन के लिए डिज़ाइन किया गया है। जब राज्य अद्यतन करता है, तो यह फिर से प्रस्तुत करता है, यह सुनिश्चित करता है कि यूआई नवीनतम मूल्यों को दर्शाता है। - DOM को एक्सेस करना और मैनिप्युलेट करना:
useRef
मुख्य रूप से DOM के साथ इंटरैक्ट करने के लिए उपयोग किया जाता है, जैसे इनपुट वैल्यू को एक्सेस करना या एलिमेंट्स पर फोकस करना। यह हमें DOM नोड्स के संदर्भों को संग्रहीत करने और पुनः रेंडरिंग को ट्रिगर किए बिना उनकी संपत्तियों को पुनः प्राप्त करने की अनुमति देता है। - रेंडरर्स में मूल्यों को संरक्षित करना:
useRef
घटक रेंडर्स में समान मूल्य बनाए रखता है, जबकिuseState
प्रत्येक रेंडर के दौरान स्थिति को आरंभ करता है। - री-रेंडरिंग व्यवहार: द्वारा लौटाए गए मान को अपडेट करने से
useState
घटक को फिर से रेंडर करने का कारण बनता है, जबकि बनाए गएcurrent
की संपत्ति को अपडेट करने से री-रेंडर ट्रिगर नहीं होता है।ref
useRef
useRef
और के उपयोग के मामलों को और समझने के लिए useState
, आइए कुछ परिदृश्य देखें जहां प्रत्येक हुक अधिक उपयुक्त है:
1. useRef
उपयोग के मामले:
1.1। DOM तत्वों तक पहुँचना: जब आपको DOM तत्वों तक पहुँचने या हेरफेर करने की आवश्यकता होती है, जैसे किसी इनपुट पर ध्यान केंद्रित करना, किसी विशिष्ट तत्व तक स्क्रॉल करना या किसी तत्व के आकार को मापना, useRef
उपयुक्त विकल्प है। यह आपको DOM नोड का संदर्भ बनाने और इसके गुणों या विधियों तक पहुँचने की अनुमति देता है।
1.2। परिवर्तनीय मूल्यों को संग्रहीत करना: यदि आपके पास एक ऐसा मूल्य है जिसे रेंडरर्स में बने रहने की आवश्यकता है, लेकिन घटक के यूआई को प्रभावित नहीं करता है या री-रेंडर को ट्रिगर करता है, तो यह useRef
एक अच्छा विकल्प है। उदाहरण के लिए, आप useRef
पिछले मानों को संग्रहीत करने के लिए उपयोग कर सकते हैं, मान कैशिंग कर सकते हैं या तुलना के लिए परिवर्तनीय मानों को संरक्षित कर सकते हैं।
2. useState
मामलों का प्रयोग करें:
2.1। घटक स्थिति का प्रबंधन: जब आपको किसी घटक के भीतर स्थिति को प्रबंधित और अद्यतन करने की आवश्यकता होती है, तो यह useState
अनुशंसित दृष्टिकोण है। यह उन मूल्यों को संग्रहीत और अद्यतन करने का एक तरीका प्रदान करता है जो घटक के UI को प्रभावित करते हैं और फिर से रेंडर को ट्रिगर करते हैं।
2.2। उपयोगकर्ता इंटरैक्शन को संभालना: यदि आपके घटक में इंटरैक्टिव तत्व हैं, जैसे चेकबॉक्स, इनपुट फ़ील्ड या टॉगल, तो useState
आमतौर पर इन इंटरैक्शन से जुड़े राज्य को प्रबंधित करने के लिए उपयोग किया जाता है। आप उपयोगकर्ता इनपुट के आधार पर स्थिति को अपडेट कर सकते हैं और UI में परिवर्तनों को दर्शा सकते हैं।
तुलना उदाहरण:
useRef
और अधिक स्पष्ट रूप से अंतर को स्पष्ट करने के लिए useState
, आइए एक उदाहरण पर विचार करें जहां दोनों हुक का उपयोग किया जा सकता है:
मान लीजिए हमारे पास इनपुट फ़ील्ड और सबमिट बटन वाला एक फॉर्म है। जब उपयोगकर्ता सबमिट बटन पर क्लिक करता है, तो हम इनपुट फ़ील्ड को साफ़ किए बिना एक सफल संदेश प्रदर्शित करना चाहते हैं।
का उपयोग करना useRef
:
import React, { useRef } from 'react';
function Form() {
const inputRef = useRef(null);
const handleSubmit = () => {
const value = inputRef.current.value;
// Submit the form
displaySuccessMessage();
};
const displaySuccessMessage = () => {
// Display success message without clearing the input field
};
return (
<div>
<input ref={inputRef} />
<button onClick={handleSubmit}>Submit</button>
</div>
);
}
का उपयोग करना useState
:
import React, { useState } from 'react';
function Form() {
const [inputValue, setInputValue] = useState('');
const handleSubmit = () => {
// Submit the form
displaySuccessMessage();
};
const displaySuccessMessage = () => {
// Display success message
setInputValue(''); // Clear the input field
};
const handleInputChange = (e) => {
setInputValue(e.target.value);
};
return (
<div>
<input value={inputValue} onChange={handleInputChange} />
<button onClick={handleSubmit}>Submit</button>
</div>
);
}
इस उदाहरण में, useState
इनपुट फ़ील्ड के मान को प्रबंधित करने और उपयोगकर्ता के साथ इंटरैक्ट करने पर री-रेंडर को ट्रिगर करने के लिए उपयोग किया जाता है। राज्य अद्यतन स्थिति को displaySuccessMessage
अद्यतन करके इनपुट फ़ील्ड को साफ़ करता है inputValue
।
निष्कर्ष:
अंत में, useRef
और useState
दोनों रिएक्ट में आवश्यक हुक हैं, लेकिन वे अलग-अलग उद्देश्यों की पूर्ति करते हैं। useRef
मुख्य रूप से DOM तक पहुँचने और हेरफेर करने के लिए उपयोग किया जाता है या री-रेंडर को ट्रिगर किए बिना परिवर्तनशील मूल्यों को संग्रहीत करता है। यह एक परिवर्तनशील संदर्भ प्रदान करता है जो घटक रेंडर में बना रहता है। दूसरी ओर, useState
घटक स्थिति के प्रबंधन के लिए उपयोग किया जाता है, जब राज्य अद्यतन करता है तो पुन: रेंडरिंग को ट्रिगर करता है। यह एक राज्य मूल्य और इसे अद्यतन करने के लिए एक फ़ंक्शन देता है।
प्रभावी और अनुकूलित रिएक्ट घटकों को लिखने के लिए प्रत्येक हुक का उपयोग करने के बीच अंतर को समझना useRef
और जानना महत्वपूर्ण है। useState
उपयोग करके useRef
और useState
सही तरीके से, आप रिएक्ट के साथ इंटरैक्टिव और प्रदर्शन करने वाले एप्लिकेशन बना सकते हैं।
पढ़ने के लिए धन्यवाद!
मुझे आशा है कि आपको यह लेख उपयोगी लगा होगा। यदि आपके कोई प्रश्न या सुझाव हैं, तो कृपया टिप्पणी छोड़ दें। आपकी प्रतिक्रिया मुझे बेहतर बनने में मदद करती है।
Subscribe⭐️ करना न भूलें
फेसबुक पेज :https://www.facebook.com/designTechWorld1
इंस्टाग्राम पेज :https://www.instagram.com/techd.esign/
यूट्यूब चैनल :https://www.youtube.com/@tech..Design/
चहचहाना :https://twitter.com/sumit_singh2311
गियर इस्तेमाल किया :
लैपटॉप :https://amzn.to/3yKkzaC
घड़ी:https://amzn.to/41cialm
आप रिएक्ट बुक पसंद कर सकते हैं: https://amzn.to/3Tw29nx
प्रोग्रामिंग लैंग्वेज से सम्बंधित कुछ अतिरिक्त पुस्तकें:
https://amzn.to/3z3tW5s
https://amzn.to/40n4m6O
https://amzn.to/3Jzstse
https://amzn.to/3nbl8aE
*महत्वपूर्ण अस्वीकरण - "Amazon और Amazon लोगो Amazon.com, Inc. या इसके सहयोगियों के ट्रेडमार्क हैं।"