React Academy · पाठ

रेंडर प्रॉप्स पैटर्न

ऐसे प्रॉप के रूप में एक फ़ंक्शन पास करें जो JSX लौटाता हो, ताकि UI को आपस में जोड़े बिना व्यवहार साझा किया जा सके।

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

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

स्वागत

इस पाठ में आप रेंडर प्रॉप्स पैटर्न समझेंगे—एक प्रॉप के रूप में ऐसा फ़ंक्शन पास करना जो JSX लौटाता है—और सीखेंगे कि घटकों के बीच व्यवहार साझा करने के लिए यह कब उपयोगी है।

रेंडर प्रॉप्स क्या हैं

रेंडर प्रॉप्स एक ऐसा पैटर्न है जिसमें घटक एक फ़ंक्शन वाले प्रॉप को स्वीकार करता है। घटक अपने रेंडर किए गए आउटपुट को तैयार करने के लिए इस फ़ंक्शन को कॉल करता है। यूआई पर नियंत्रण उपभोक्ता के पास रहता है; घटक व्यवहार उपलब्ध कराता है।
<DataProvider render={data => <UserCard user={data} />} />

सरल रेंडर प्रॉप उदाहरण

एक टॉगल घटक खुली/बंद स्थिति का प्रबंधन करता है और वर्तमान स्थिति तथा एक टॉगल फ़ंक्शन के साथ रेंडर प्रॉप को कॉल करता है। रेंडर करने का तरीका उपभोक्ता तय करता है।
function Toggle({ render }) {
  const [on, setOn] = useState(false);
  return render(on, () => setOn(!on));
}

<Toggle render={(on, toggle) => (
  <button onClick={toggle}>{on ? 'Close' : 'Open'}</button>
)} />

रेंडर प्रॉप के रूप में children का उपयोग

नामित रेंडर प्रॉप के बजाय, आप `children` को एक फ़ंक्शन के रूप में उपयोग कर सकते हैं। कई लाइब्रेरीज़ (React Router v5, Formik) इस पैटर्न का उपयोग करती हैं—इसे कभी-कभी 'फ़ंक्शन के रूप में चिल्ड्रेन' कहा जाता है।
<Toggle>
  {(on, toggle) => (
    <div>
      {on && <Panel />}
      <button onClick={toggle}>Toggle</button>
    </div>
  )}
</Toggle>

माउस स्थिति ट्रैकर

यह रेंडर प्रॉप्स का एक पारंपरिक उदाहरण है: MouseTracker घटक कर्सर की स्थिति को ट्रैक करता है और उसे रेंडर प्रॉप में पास करता है। कोई भी उपभोक्ता अपनी आवश्यकता के अनुसार उस स्थिति को दिखा सकता है।
function MouseTracker({ children }) {
  const [pos, setPos] = useState({ x: 0, y: 0 });
  return (
    <div onMouseMove={e => setPos({ x: e.clientX, y: e.clientY })}>
      {children(pos)}
    </div>
  );
}

रेंडर प्रॉप्स बनाम कस्टम हुक्स

हुक्स से पहले रेंडर प्रॉप्स सबसे अधिक इस्तेमाल किया जाने वाला पैटर्न था। अब कस्टम हुक्स यही काम अधिक साफ़ तरीके से करते हैं: हुक डेटा और फ़ंक्शन लौटाता है; घटक उन्हें अपने JSX में उपयोग करता है। आधुनिक React में हुक्स को प्राथमिकता दी जाती है।
// Old: render props
<Mouse render={pos => <p>{pos.x}</p>} />

// Modern: custom hook
const pos = useMouse();
<p>{pos.x}</p>

रेंडर प्रॉप्स कब अभी भी उपयोगी हैं

रेंडर प्रॉप्स अब भी उपयोगी हैं जब: (1) आपको ट्री में किसी विशिष्ट स्थान पर गतिशील रेंडरिंग डालनी हो, (2) आप ऐसी हेडलेस घटक लाइब्रेरी बना रहे हों जो तर्क को यूआई से अलग करती हो।

प्रदर्शन संबंधी चेतावनी

किसी रेंडर प्रॉप को पैरेंट रेंडर के भीतर परिभाषित करने से हर पैरेंट रेंडर पर एक नया फ़ंक्शन बनता है, जिससे PureComponent/React.memo वाले चाइल्ड घटक जल्दी रेंडर होने से बच नहीं पाते। रेंडर प्रॉप फ़ंक्शन को किसी स्थिर चर या विधि में अलग से परिभाषित करें।
// Avoid: new function every render
<Toggle render={pos => <Dot pos={pos} />} />

// Better: stable reference
const renderDot = pos => <Dot pos={pos} />;
<Toggle render={renderDot} />

रेंडर प्रॉप्स का संयोजन

कई रेंडर-प्रॉप घटकों को नेस्ट करने से जल्दी ही 'रेंडर प्रॉप नरक' या 'आवरण नरक' बन जाता है—ऐसे गहराई से नेस्ट किए गए कॉलबैक जिन्हें पढ़ना कठिन होता है। हुक्स पेश किए जाने का यह एक कारण है।

लाइब्रेरीज़ में रेंडर प्रॉप्स

React Router v5 ने Route के लिए रेंडर प्रॉप्स का उपयोग किया था। Downshift, Formik और React-Table भी इनके अलग-अलग रूपों का उपयोग करते हैं। रेंडर प्रॉप्स को समझने से आपको इन लाइब्रेरीज़ का उपयोग करने वाले कोड को पढ़ने और उसकी समस्याएँ दूर करने में सहायता मिलेगी।

त्वरित जाँच

स्थिर JSX पास करने की तुलना में रेंडर प्रॉप्स पैटर्न का मुख्य लाभ क्या है?

पुनरावलोकन

रेंडर प्रॉप्स ऐसा फ़ंक्शन पास करते हैं जो JSX लौटाता है। घटक व्यवहार उपलब्ध कराता है; उपभोक्ता यूआई उपलब्ध कराता है। आधुनिक React में कस्टम हुक्स को प्राथमिकता दें, लेकिन मौजूदा कोड पढ़ने और हेडलेस घटक बनाने के लिए रेंडर प्रॉप्स को समझें।

आगे

अगला पाठ: **हायर-ऑर्डर घटक (HOC) की व्याख्या** — आप प्रॉप्स जोड़ने, रूट सुरक्षित करने या लॉग दर्ज करने के लिए घटकों को रैप करेंगे।
शुरुआत निःशुल्क

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

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

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

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

क्या “रेंडर प्रॉप्स पैटर्न” पाठ निःशुल्क है?

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

“रेंडर प्रॉप्स पैटर्न” में मैं क्या सीखूँगा?

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

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

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

“रेंडर प्रॉप्स पैटर्न” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. रेंडर प्रॉप्स पैटर्न
  2. हायर-ऑर्डर कंपोनेंट (HOC) की व्याख्या
  3. HOC बनाम रेंडर प्रॉप्स बनाम कस्टम हुक
  4. HOC को कस्टम हुक में रीफ़ैक्टर करना
← React Academy पर वापस जाएँ