React Academy · पाठ

State को ऊपर उठाना: सिद्धांत और उदाहरण

साझा state को निकटतम साझा ancestor में ले जाएँ और props के ज़रिए नीचे पास करें

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

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

स्वागत है

इस पाठ में आप स्थिति को ऊपर ले जाने का पैटर्न सीखेंगे — साझा स्थिति को निकटतम साझा पूर्वज घटक में ले जाना, ताकि सहोदर घटक एक-दूसरे के साथ समन्वय में रह सकें।

समस्या: असंगत सहोदर घटक

जब दो सहोदर घटकों को एक ही डेटा की आवश्यकता होती है, तो दोनों में अलग-अलग स्थिति रखने से समन्वयन संबंधी त्रुटियाँ होती हैं। इसका समाधान स्थिति को उनके साझा पैरेंट में ले जाना है।

साझा पूर्वज घटक की पहचान

उस निकटतम घटक को खोजें जो साझा डेटा की आवश्यकता वाले **दोनों** घटकों का पैरेंट हो। स्थिति को वहाँ ले जाएँ और उसे प्रॉप्स के रूप में नीचे पास करें।
function Parent() {
  const [value, setValue] = useState('');
  return (
    <>
      <InputA value={value} onChange={setValue} />
      <PreviewB value={value} />
    </>
  );
}

काउंटर का उदाहरण ऊपर ले जाना

मान लीजिए कि दो घटक एक ही काउंटर दिखाते हैं। दोनों में गिनती प्रबंधित करने के बजाय उसे उनके पैरेंट में ले जाएँ। दोनों को गिनती प्रॉप के रूप में मिलेगी और वे उसे अपडेट करने के लिए onChange कॉलबैक कॉल करेंगे।
function App() {
  const [count, setCount] = useState(0);
  return (
    <>
      <CounterDisplay count={count} />
      <CounterControl count={count} onIncrement={() => setCount(c => c + 1)} />
    </>
  );
}

अपडेट के लिए कॉलबैक प्रॉप्स

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

स्थिति ऊपर ले जाने के बाद नियंत्रित बनाम अनियंत्रित

स्थिति ऊपर ले जाने के बाद, पहले स्थिति रखने वाला चाइल्ड एक **नियंत्रित घटक** बन जाता है — उसे अपने पैरेंट से वर्तमान मान और onChange मिलता है। पैरेंट ही सत्य का एकमात्र स्रोत होता है।

कई स्तरों तक स्थिति ऊपर ले जाना

कभी-कभी आपको स्थिति को ट्री में कई स्तर ऊपर ले जाना पड़ता है। यदि स्थिति को कई मध्यवर्ती घटकों से आगे ले जाने की आवश्यकता हो, तो प्रॉप्स को स्तर-दर-स्तर पास करने से बचने के लिए Context पर विचार करें।

स्थिति ऊपर ले जाने के लाभ

स्थिति को ऊपर ले जाने से सत्य का एक स्रोत मिलता है, डेटा प्रवाह पूर्वानुमानित बनता है (हमेशा ऊपर से नीचे), डीबग करना सरल होता है और बाद में उसी स्थिति के अधिक उपयोगकर्ता जोड़ना आसान हो जाता है।

ऊपर लाई गई स्थिति से व्युत्पन्न स्थिति

पैरेंट के भीतर ऊपर लाई गई स्थिति से व्युत्पन्न मानों की गणना करें और उन्हें अतिरिक्त प्रॉप्स के रूप में पास करें। स्थिति की कभी नकल न करें — उससे मान व्युत्पन्न करें।
const [items, setItems] = useState([]);
const filteredItems = items.filter(i => i.done); // derived, not separate state

स्थिति को अत्यधिक ऊपर ले जाना

यदि आप स्थिति को 4 या उससे अधिक स्तरों तक ऊपर ले जाते हैं, तो घटक ट्री की संरचना गलत हो सकती है या अब Context अथवा स्थिति प्रबंधन लाइब्रेरी का समय आ गया है।

त्वरित जाँच

जब दो सहोदर घटकों को स्थिति के एक ही भाग को साझा करने की आवश्यकता हो, तो सही तरीका क्या है?

पुनरावलोकन

जब सहोदर घटकों को स्थिति साझा करनी हो, तो उसे निकटतम साझा पूर्वज घटक में ऊपर ले जाएँ। वर्तमान मान नीचे और बदलाव के कॉलबैक ऊपर पास करें। स्थिति की नकल करने के बजाय मानों को व्युत्पन्न करें।

आगे

अगला पाठ: **प्रॉप्स को गहराई तक पहुँचाना: यह कब समस्या है और कब ठीक है** — आप समस्याग्रस्त प्रॉप-श्रृंखलाओं की पहचान करेंगे और तय करेंगे कि उन्हें समाधान की आवश्यकता कब है
शुरुआत निःशुल्क

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

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

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

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

क्या “State को ऊपर उठाना: सिद्धांत और उदाहरण” पाठ निःशुल्क है?

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

“State को ऊपर उठाना: सिद्धांत और उदाहरण” में मैं क्या सीखूँगा?

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

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

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

“State को ऊपर उठाना: सिद्धांत और उदाहरण” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. State को ऊपर उठाना: सिद्धांत और उदाहरण
  2. Prop Drilling: कब समस्या है और कब ठीक है
  3. Sibling Communication के पैटर्न
  4. सही State Location चुनना
← React Academy पर वापस जाएँ