प्रतिक्रिया useRef
हुक
useRef
हुक आपको रेंडरर्स के बीच मूल्यों को बनाए रखने की अनुमति देता है।
इसका उपयोग एक परिवर्तनशील मूल्य को संग्रहीत करने के लिए किया जा सकता है जो अद्यतन होने पर पुन: प्रस्तुत करने का कारण नहीं बनता है।
इसका उपयोग सीधे DOM तत्व तक पहुँचने के लिए किया जा सकता है।
पुन: प्रस्तुत करने का कारण नहीं है
यदि हमने यह गिनने की कोशिश की कि हमारा एप्लिकेशन हुक का उपयोग करके कितनी बार प्रस्तुत करता है useState
, तो हम एक अनंत लूप में फंस जाएंगे क्योंकि यह हुक स्वयं फिर से प्रस्तुत करता है।
इससे बचने के लिए हम useRef
हुक का इस्तेमाल कर सकते हैं।
उदाहरण:
useRef
एप्लिकेशन रेंडरर्स को ट्रैक करने के लिए उपयोग करें ।
import { useState, useEffect, useRef } from "react";
import ReactDOM from "react-dom";
function App() {
const [inputValue, setInputValue] = useState("");
const count = useRef(0);
useEffect(() => {
count.current = count.current + 1;
});
return (
<>
<input
type="text"
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
<h1>Render Count: {count.current}</h1>
</>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
useRef()
केवल एक आइटम लौटाता है। यह नामक एक वस्तु देता है current
।
जब हम इनिशियलाइज़ करते हैं तो हम useRef
प्रारंभिक मान सेट करते हैं useRef(0)
:।
यह ऐसा करने जैसा है const count = {current: 0}
:। हम उपयोग करके गिनती तक पहुँच सकते हैं count.current
।
इसे अपने कंप्यूटर पर चलाएँ और एप्लिकेशन रेंडर काउंट में वृद्धि देखने के लिए इनपुट में टाइप करने का प्रयास करें।
प्रमाणन हासिल करें!
$95 नामांकन
डीओएम तत्वों तक पहुंचना
सामान्य तौर पर, हम रिएक्ट को सभी डोम हेरफेर को संभालने देना चाहते हैं।
लेकिन कुछ ऐसे उदाहरण हैं जहां useRef
बिना किसी समस्या के उपयोग किया जा सकता है।
रिएक्ट में, हम ref
किसी तत्व को सीधे DOM में एक्सेस करने के लिए एक विशेषता जोड़ सकते हैं।
उदाहरण:
useRef
इनपुट पर ध्यान केंद्रित करने के लिए उपयोग करें :
import { useRef } from "react";
import ReactDOM from "react-dom";
function App() {
const inputElement = useRef();
const focusInput = () => {
inputElement.current.focus();
};
return (
<>
<input type="text" ref={inputElement} />
<button onClick={focusInput}>Focus Input</button>
</>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
ट्रैकिंग राज्य परिवर्तन
हुक का useRef
उपयोग पिछले राज्य मूल्यों पर नज़र रखने के लिए भी किया जा सकता है।
ऐसा इसलिए है क्योंकि हम रेंडरर्स useRef
के बीच मूल्यों को बनाए रखने में सक्षम हैं।
उदाहरण:
useRef
पिछले राज्य मूल्यों का ट्रैक रखने के लिए उपयोग करें :
import { useState, useEffect, useRef } from "react";
import ReactDOM from "react-dom";
function App() {
const [inputValue, setInputValue] = useState("");
const previousInputValue = useRef("");
useEffect(() => {
previousInputValue.current = inputValue;
}, [inputValue]);
return (
<>
<input
type="text"
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
<h2>Current Value: {inputValue}</h2>
<h2>Previous Value: {previousInputValue.current}</h2>
</>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
इस बार हम पिछली स्थिति पर नज़र रखने के लिए useState
, useEffect
और के संयोजन का उपयोग करते हैं ।useRef
में useEffect
, हम हर बार इनपुट फ़ील्ड में टेक्स्ट दर्ज करके useRef
वर्तमान मान को अपडेट कर रहे हैं।inputValue