useRef रिएक्ट हुक है जो किसी मान या DOM तत्व के लिए लगातार संदर्भ बनाने की अनुमति देता है। यूज़स्टेट के विपरीत, जिसका उपयोग री-रेंडर को ट्रिगर करने वाली स्थिति को प्रबंधित करने के लिए किया जाता है, यूज़रेफ का उपयोग मुख्य रूप से साइड इफेक्ट्स या सीधे DOM तत्वों तक पहुंचने के लिए किया जाता है।
useRef हुक विशेष रूप से इसके लिए उपयोगी है:
useRef हुक .current संपत्ति के साथ एक ऑब्जेक्ट लौटाता है। जब आप useRef को कॉल करते हैं, तो यह आपके द्वारा तर्क के रूप में पारित किए गए मान का एक सतत संदर्भ बनाता है। यह संदर्भ लौटाए गए ऑब्जेक्ट की .current संपत्ति में संग्रहीत है।
एक संदर्भ बनाने के लिए बस प्रारंभिक मूल्य के साथ useRef को कॉल करें।
import { useRef} from 'react' const App = () => { const countRef = useRef(0) return (...) } export default App
उपरोक्त उदाहरण में countRef प्रारंभिक मान 0 का संदर्भ है।
संदर्भ मान तक पहुंचने के लिए बस .current संपत्ति के साथ countRef ऑब्जेक्ट को कॉल करें
import { useRef} from 'react' const App = () => { const countRef = useRef(0) const increment = () => { countRef.current } return () } export default AppCount: {countRef.current}
उपर्युक्त उदाहरण में यदि आप बटन पर क्लिक करते हैं तो यह इंक्रीमेंट फ़ंक्शन को कॉल करेगा जो काउंटरेफ को बढ़ाएगा, लेकिन काउंट
काउंट: {काउंटरेफ.करंट}
पर अपडेट नहीं किया जाएगा क्योंकि यूज़रेफ को अपडेट किया जा रहा है। यूज़स्टेट जैसे पुन: प्रस्तुतीकरण का कारण न बनें।अपेक्षित परिणाम प्राप्त करने के लिए कोड को नीचे दिए गए उदाहरण में अपडेट करें।
import { useRef, useState } from 'react' const App = () => { const countRef = useRef(0) const [count, setCount] = useState(0) const increment = () => { countRef.current setCount(countRef.current) } return () } export default AppCount: {count}
HTML तत्वों के गुणों तक पहुंचने और उन्हें बदलने के लिए यूज़रेफ हुक का उपयोग करना संभव है
const App = () => { const inputRef = useRef(null) const handleFocus = () => { inputRef.current.focus() } return( ) }
यूजस्टेट या वेरिएबल के विपरीत, यूज़रेफ कैश्ड डेटा या कॉन्फ़िगरेशन सेटिंग्स जैसे री-रेंडर के बीच मान और डेटा पास कर सकता है।
कुछ मामलों में, यूज़रेफ का उपयोग अनावश्यक पुन: प्रस्तुतीकरण से बचकर घटक अनुकूलन में मदद कर सकता है। जैसे कि यदि आपके पास कोई घटक है जो आइटमों की एक बड़ी सूची प्रस्तुत करता है तो आप उसे उपयोग रेफरी का उपयोग करके कैश कर सकते हैं और केवल उन आइटमों को संशोधित कर सकते हैं जो बदल गए हैं।
const इनपुटRef = useRef(null);
वापसी
const inputRef = useRef(null); returnचेतावनी: फ़ंक्शन घटकों को रेफ़र्स नहीं दिया जा सकता। इस रेफरी तक पहुँचने के प्रयास विफल हो जायेंगे। क्या आप React.forwardRef() का उपयोग करना चाहते थे?;
इस समस्या को हल करने के लिए कस्टम घटक को फॉरवर्डरेफ के साथ इस प्रकार लपेटें:
const इनपुटRef = useRef(null);
वापसी
const inputRef = useRef(null); return;
'प्रतिक्रिया' से आयात {forwardRef };
const MyInput = फ़ॉरवर्डRef(({ मान, onChange }, ref) => {
वापस करना (
);
});
डिफ़ॉल्ट MyInput निर्यात करें;
import { forwardRef } from 'react'; const MyInput = forwardRef(({ value, onChange }, ref) => { return ( ); }); export default MyInput;
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3