React Academy · पाठ

useRef से Uncontrolled Inputs

सरल फ़ॉर्म परिदृश्यों में state के बजाय refs से DOM इनपुट मानों तक पहुँचें

पाठ 1, कुल 4 में से13 चरण

useRef से Uncontrolled Inputs, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

इस पाठ में आप React स्थिति में उन्हें प्रबंधित किए बिना DOM इनपुट के मानों तक पहुँचने के लिए useRef के साथ अनियंत्रित इनपुट का उपयोग करेंगे

नियंत्रित बनाम अनियंत्रित

एक **नियंत्रित इनपुट** का मान React स्थिति द्वारा संचालित होता है (मान + onChange)। एक **अनियंत्रित इनपुट** अपना मान DOM में स्वयं प्रबंधित करता है; React आवश्यकता पड़ने पर ही रेफ़ के माध्यम से उसे पढ़ता है
// Controlled
<input value={name} onChange={e => setName(e.target.value)} />

// Uncontrolled
const nameRef = useRef();
<input ref={nameRef} defaultValue="" />

सबमिट करने पर मान पढ़ना

अनियंत्रित इनपुट के साथ, फ़ॉर्म सबमिट होने पर `ref.current.value` तक पहुँचकर मान पढ़िए। उपयोगकर्ता के टाइप करते समय स्थिति में कोई अपडेट नहीं होता
function Form() {
  const nameRef = useRef();
  const handleSubmit = (e) => {
    e.preventDefault();
    console.log(nameRef.current.value);
  };
  return (
    <form onSubmit={handleSubmit}>
      <input ref={nameRef} />
      <button type="submit">Submit</button>
    </form>
  );
}

defaultValue बनाम value

अनियंत्रित इनपुट के लिए प्रारंभिक मान सेट करने हेतु `defaultValue` का उपयोग कीजिए, `value` का नहीं। `onChange` के बिना `value` सेट करने पर React चेतावनी देता है और इनपुट केवल-पठन योग्य हो जाता है
<input ref={nameRef} defaultValue="Initial text" />

अनियंत्रित इनपुट का उपयोग कब करें

अनियंत्रित इनपुट इन परिस्थितियों में उपयोगी होते हैं: ऐसे सरल फ़ॉर्म जहाँ आपको केवल सबमिट करने पर मान चाहिए, फ़ाइल इनपुट जिन्हें React नियंत्रित नहीं कर सकता, और ऐसे प्रदर्शन-महत्वपूर्ण इनपुट जहाँ दोबारा रेंडर होने से बचना आवश्यक हो

अनियंत्रित इनपुट को रीसेट करना

अनियंत्रित इनपुट को रीसेट करने के लिए अनिवार्य रूप से `ref.current.value = ''` सेट कीजिए। या, React को नए DOM नोड के साथ उसे फिर से माउंट करने के लिए घटक का `key` प्रॉप बदल दीजिए
// Reset imperatively
nameRef.current.value = '';

// Or remount
setFormKey(k => k + 1);
<input key={formKey} ref={nameRef} />

कई इनपुट के लिए कई रेफ़

कई अनियंत्रित फ़ील्ड वाले फ़ॉर्म के लिए प्रत्येक इनपुट का अलग रेफ़ बनाइए। सबमिट करने पर प्रत्येक रेफ़ के `.current.value` तक पहुँचिए
const emailRef = useRef();
const passwordRef = useRef();

<input ref={emailRef} type="email" />
<input ref={passwordRef} type="password" />

माउंट होने पर फ़ोकस करना

किसी घटक के माउंट होने पर इनपुट को अपने-आप फ़ोकस करने के लिए useRef का अक्सर उपयोग किया जाता है। माउंट होने के बाद useEffect के अंदर रेफ़ को पढ़िए
const inputRef = useRef();
useEffect(() => {
  inputRef.current?.focus();
}, []);
<input ref={inputRef} />

अनियंत्रित इनपुट और सत्यापन

अनियंत्रित इनपुट का सत्यापन करने के लिए सबमिट करते समय मानों को अनिवार्य रूप से पढ़ना पड़ता है। वास्तविक समय के सत्यापन के लिए यह नियंत्रित इनपुट से अधिक अव्यवस्थित होता है। जब आपको तुरंत प्रतिक्रिया चाहिए, तो नियंत्रित इनपुट को प्राथमिकता दीजिए

useRef का समझौता

अनियंत्रित इनपुट दोबारा रेंडर होने से बचाते हैं, लेकिन React की प्रतिक्रियाशीलता छोड़नी पड़ती है। रेफ़ को पढ़कर और स्थिति को मैन्युअल रूप से अपडेट किए बिना आप वास्तविक समय में इनपुट के मान के आधार पर सशर्त रेंडर नहीं कर सकते

त्वरित जाँच

React में अनियंत्रित इनपुट का प्रारंभिक मान सेट करने के लिए आपको किस प्रॉप का उपयोग करना चाहिए

पुनरावलोकन

अनियंत्रित इनपुट आवश्यकता पड़ने पर मान पढ़ने के लिए रेफ़ का उपयोग करते हैं। प्रारंभिक मान सेट करने के लिए defaultValue का उपयोग कीजिए, सबमिट करने पर ref.current.value पढ़िए, और रेफ़ का मान साफ़ करके या key बदलकर रीसेट कीजिए

आगे

अगला पाठ: **फ़ाइल इनपुट और फ़ाइल डेटा पढ़ना** — आप फ़ाइल इनपुट संभालेंगे और FileReader के साथ मेटाडेटा तथा छवि डेटा पढ़ेंगे
शुरुआत निःशुल्क

एआई शिक्षक के साथ React सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
88
पाठ
324

अक्सर पूछे जाने वाले प्रश्न

क्या “useRef से Uncontrolled Inputs” पाठ निःशुल्क है?

हाँ—“useRef से Uncontrolled Inputs” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“useRef से Uncontrolled Inputs” में मैं क्या सीखूँगा?

सरल फ़ॉर्म परिदृश्यों में state के बजाय refs से DOM इनपुट मानों तक पहुँचें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“useRef से Uncontrolled Inputs” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. useRef से Uncontrolled Inputs
  2. फ़ाइल इनपुट और फ़ाइल डेटा पढ़ना
  3. Drag & Drop फ़ाइल अपलोड UI
  4. बैकएंड API पर फ़ाइलें अपलोड करना
← React Academy पर वापस जाएँ