React Academy · पाठ

डेटा और कोड सीमाओं के लिए Suspense

साफ़ लोडिंग स्थितियों के लिए Suspense को लेज़ी लोडिंग और भविष्य की डेटा लाइब्रेरी के साथ संयोजित करें।

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

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

स्वागत है

इस पाठ में आप कोड विभाजन के लिए रीऐक्ट सस्पेंस को React.lazy के साथ और सामग्री लोड होने के दौरान वैकल्पिक यूज़र इंटरफ़ेस दिखाने के लिए डेटा लाइब्रेरी के साथ इस्तेमाल करेंगे।

Suspense क्या है

सस्पेंस एक रीऐक्ट कॉम्पोनेंट है जो अपने सबट्री में उन कॉम्पोनेंट को पकड़ता है जो किसी चीज़ के लोड होने की प्रतीक्षा में रुके हुए हैं और इसके बजाय वैकल्पिक यूज़र इंटरफ़ेस रेंडर करता है।
<Suspense fallback={<Spinner />}>
  <MyComponent />
</Suspense>

React.lazy के साथ Suspense

React.lazy() डायनेमिक इम्पोर्ट से लोड होने वाला कॉम्पोनेंट बनाता है। Suspense के अंदर इस्तेमाल किए जाने पर, JavaScript बंडल डाउनलोड होने तक वैकल्पिक यूज़र इंटरफ़ेस रेंडर होता रहता है।
const HeavyChart = React.lazy(() => import('./HeavyChart'));

<Suspense fallback={<p>Loading chart...</p>}>
  <HeavyChart />
</Suspense>

एक सीमा के नीचे कई lazy कॉम्पोनेंट

एक ही Suspense सीमा के नीचे मौजूद कई lazy कॉम्पोनेंट एक ही वैकल्पिक यूज़र इंटरफ़ेस साझा करते हैं। सामग्री दिखाने से पहले रीऐक्ट उन ALL कॉम्पोनेंट के लोड होने की प्रतीक्षा करता है। स्वतंत्र लोडिंग के लिए नेस्ट की गई सीमाओं का इस्तेमाल कीजिए।

नेस्ट की गई Suspense सीमाएँ

हर चीज़ का इंतज़ार करने के बजाय, यूज़र इंटरफ़ेस के हिस्सों को लोड होते ही दिखाने के लिए Suspense सीमाओं को नेस्ट कीजिए। बाहरी सीमाएँ धीमे लोड होने को पकड़ती हैं और आंतरिक सीमाएँ तेज़ लोडिंग संभालती हैं।
<Suspense fallback={<PageSkeleton />}>
  <Header />
  <Suspense fallback={<ChartSkeleton />}>
    <LazyChart />
  </Suspense>
</Suspense>

डेटा लाइब्रेरी के साथ Suspense

रीऐक्ट क्वेरी (suspense: true के साथ) और Relay जैसी लाइब्रेरी डेटा की प्रतीक्षा कर रहे कॉम्पोनेंट को lazy लोडिंग की तरह रोक देती हैं। Suspense सीमा लोडिंग के लिए वैकल्पिक यूज़र इंटरफ़ेस प्रदान करती है।
const { data } = useQuery({ queryKey: ['users'], queryFn: fetchUsers,
  suspense: true }); // component suspends until data is ready
// No loading check needed — data is always available here

रीऐक्ट 19 में use() हुक

रीऐक्ट 19 में `use(promise)` हुक आपको किसी कॉम्पोनेंट के अंदर सीधे प्रॉमिस पढ़ने देता है। अगर प्रॉमिस लंबित है, तो कॉम्पोनेंट रुक जाता है और सबसे निकट वाली Suspense सीमा अपना वैकल्पिक यूज़र इंटरफ़ेस दिखाती है।
import { use } from 'react';

function Profile({ userPromise }) {
  const user = use(userPromise); // suspends until resolved
  return <p>{user.name}</p>;
}

क्रमबद्ध रूप से दिखाने के लिए SuspenseList

React.SuspenseList (प्रायोगिक) कई Suspense सीमाओं के बीच तालमेल बनाता है, ताकि वे किसी निश्चित क्रम में दिखाई दें (ऊपर से नीचे, सभी एक साथ आदि) — इससे यूज़र इंटरफ़ेस का अव्यवस्थित ढंग से अचानक दिखाई देना रुकता है।

Suspense त्रुटियाँ नहीं पकड़ता

सस्पेंस केवल लोडिंग स्थितियों को संभालता है। यह विफल फ़ेच से उत्पन्न त्रुटियों को नहीं पकड़ता। लोडिंग और त्रुटि, दोनों स्थितियों को संभालने के लिए सस्पेंस को त्रुटि बाउंड्री के साथ मिलाकर इस्तेमाल कीजिए।
<ErrorBoundary fallback={<Error />}>
  <Suspense fallback={<Spinner />}>
    <DataComponent />
  </Suspense>
</ErrorBoundary>

वैकल्पिक यूज़र इंटरफ़ेस के रूप में स्केलेटन स्क्रीन

स्पिनर के बजाय Suspense के वैकल्पिक यूज़र इंटरफ़ेस के रूप में स्केलेटन स्क्रीन का इस्तेमाल कीजिए। स्केलेटन स्क्रीन ऐसे स्थानापन्न लेआउट होते हैं जो सामग्री के आकार से मेल खाते हैं और सामग्री आने पर लेआउट में होने वाले बदलाव को कम करते हैं।

त्वरित जाँच

React.lazy() कॉम्पोनेंट का बंडल डाउनलोड होने के दौरान उपयोगकर्ताओं को क्या दिखाया जाता है?

पुनरावलोकन

सस्पेंस लोड हो रहे कॉम्पोनेंट को रैप करता है और वैकल्पिक यूज़र इंटरफ़ेस दिखाता है। कोड विभाजन के लिए React.lazy, डेटा लोडिंग के लिए डेटा लाइब्रेरी के सस्पेंस मोड और स्वतंत्र क्रमिक प्रदर्शन के लिए नेस्ट की गई सीमाओं का इस्तेमाल कीजिए। पूरी त्रुटि-प्रबंधन व्यवस्था के लिए इसे त्रुटि बाउंड्री के साथ जोड़िए।

पाठ्यक्रम पूरा हुआ

बधाई हो! आपने **React में असिंक्रोनस पैटर्न: प्रॉमिस और समवर्तीता** पूरा कर लिया है। अब आप रेस कंडीशन संभाल सकते हैं, प्रतिक्रियाशील यूआई के लिए useTransition और useDeferredValue का उपयोग कर सकते हैं, और लोडिंग सीमाओं के लिए Suspense का लाभ उठा सकते हैं।
शुरुआत निःशुल्क

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

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

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

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

क्या “डेटा और कोड सीमाओं के लिए Suspense” पाठ निःशुल्क है?

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

“डेटा और कोड सीमाओं के लिए Suspense” में मैं क्या सीखूँगा?

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

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

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

“डेटा और कोड सीमाओं के लिए Suspense” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. रेस स्थितियाँ और इफ़ेक्ट की सफ़ाई
  2. गैर-अवरोधक UI अपडेट के लिए useTransition
  3. इनपुट डिबाउंसिंग के लिए useDeferredValue
  4. डेटा और कोड सीमाओं के लिए Suspense
← React Academy पर वापस जाएँ