SWR की मूल अवधारणाएँ: Stale-While-Revalidate
SWR की कैशिंग रणनीति समझें: पुराना डेटा तुरंत दिखाएँ, पृष्ठभूमि में फिर से सत्यापन करें और नया डेटा मिलने पर अपडेट करें
SWR की मूल अवधारणाएँ: Stale-While-Revalidate, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
SWR का अर्थ क्या है
SWR का अर्थ है पुराना डेटा देते हुए पुनः सत्यापन, जो RFC 5861 में परिभाषित HTTP कैश रणनीति है। इस रणनीति में उपयोगकर्ता को पुराना (कैश किया हुआ) डेटा तुरंत दिखाया जाता है, फिर पृष्ठभूमि में उसका पुनः सत्यापन किया जाता है और नया डेटा आने पर इंटरफ़ेस अपडेट कर दिया जाता है।
यह तरीका अनुभव किए जाने वाले प्रदर्शन को प्राथमिकता देता है: उपयोगकर्ताओं को नेटवर्क से प्रतिक्रिया आने की प्रतीक्षा करने के बजाय डेटा तुरंत दिखाई देता है।
उपयोगकर्ता अनुभव का लाभ
पारंपरिक लोडिंग तरीकों में हर बार पृष्ठ बदलने पर उपयोगकर्ताओं को घूमता हुआ संकेतक दिखाई देता है। SWR के साथ उन्हें अंतिम ज्ञात डेटा तुरंत दिखाई देता है और डेटा बदलने पर इंटरफ़ेस पृष्ठभूमि में बिना किसी बाधा के अपडेट हो जाता है।
इससे अनुप्रयोग काफ़ी तेज़ महसूस होते हैं और लोडिंग स्थितियों से होने वाला मानसिक व्यवधान कम होता है।
SWR पुनः सत्यापन कब शुरू करता है
SWR इन स्थितियों में डेटा का पुनः सत्यापन अपने-आप करता है: ब्राउज़र विंडो पर फिर से फ़ोकस आने पर (जब उपयोगकर्ता दूसरे टैब पर जाकर वापस आता है), ऑफ़लाइन होने के बाद नेटवर्क कनेक्शन बहाल होने पर, स्पष्ट रूप से mutate() कॉल किए जाने पर, या refreshInterval टाइमर चलने पर।
ये स्वचालित ट्रिगर डेवलपर को डेटा दोबारा लाने का तर्क स्वयं प्रबंधित किए बिना डेटा को ताज़ा रखते हैं।
SWR की स्थिति मशीन
SWR की key कई स्थितियों में से किसी एक में हो सकती है: loading (कोई कैश किया हुआ डेटा नहीं है और पहली बार डेटा लाया जा रहा है), revalidating (कैश किया हुआ डेटा मौजूद है और पृष्ठभूमि में उसे ताज़ा किया जा रहा है), error (अनुरोध विफल हो गया है), या success (नया डेटा उपलब्ध है)।
इन स्थितियों को समझने से आपको सटीक लोडिंग कंकाल और त्रुटि इंटरफ़ेस बनाने में सहायता मिलती है।
वैश्विक SWR कैश
SWR अनुरोध की key (आमतौर पर URL स्ट्रिंग) के आधार पर वैश्विक मेमोरी कैश बनाए रखता है। जो भी घटक उसी key का अनुरोध करता है, उसे वही कैश किया हुआ मान मिलता है और वह उसी पुनः सत्यापन चक्र में भाग लेता है।
डुप्लिकेट अनुरोधों को अपने-आप हटाने की इस सुविधा का अर्थ है कि 10 घटक समान key के साथ useSWR कॉल कर सकते हैं और फिर भी नेटवर्क अनुरोध केवल एक ही भेजा जाएगा।
डेटा लाने वाला फ़ंक्शन
SWR कैश प्रबंधन के तर्क को वास्तविक डेटा लाने की प्रक्रिया से अलग रखता है। आप एक fetcher फ़ंक्शन देते हैं: ऐसा async फ़ंक्शन जो key स्वीकार करता है और डेटा लौटाता है।
fetcher को बदला जा सकता है: fetch, axios, graphql-request या किसी भी async डेटा स्रोत का उपयोग करें। fetcher चाहे जैसे काम करे, SWR कैशिंग और पुनः सत्यापन संभालता है।
वैश्विक fetcher कॉन्फ़िगर करना
अपने ऐप को ऐसे value prop वाले SWRConfig में रैप करें, जिसमें fetcher फ़ंक्शन हो: value={{ fetcher: (url) => fetch(url).then(r => r.json()) }}। fetcher तर्क छोड़ने वाली हर useSWR कॉल इस वैश्विक डिफ़ॉल्ट का उपयोग करती है।
इससे API कॉन्फ़िगरेशन (बेस URL और प्रमाणीकरण हेडर) को हर हुक कॉल में दोहराने के बजाय एक ही जगह पर केंद्रीकृत किया जा सकता है।
SWR बनाम पारंपरिक डेटा लाना
पारंपरिक तरीका लोडिंग, डेटा और त्रुटि की स्थितियों को मैन्युअल रूप से संभालने के लिए useEffect + useState का उपयोग करता है। SWR इन सबकी जगह एकल हुक कॉल देता है, जो कैशिंग, डुप्लिकेट अनुरोधों को हटाना, पृष्ठभूमि में ताज़ा करना और त्रुटि पर दोबारा प्रयास करना अपने-आप संभालता है।
कोड में कमी काफ़ी बड़ी होती है: डेटा लाने वाला सामान्य घटक 20 से अधिक पंक्तियों से घटकर 3 पंक्तियों का रह जाता है।
कैश key का डिज़ाइन
key किसी अनुरोध की विशिष्ट पहचान करती है। सरल मामलों में URL स्ट्रिंग का उपयोग करें। पैरामीटर वाले अनुरोधों के लिए ऐरे key का उपयोग करें: [url, params], जहाँ params एक स्थिर ऑब्जेक्ट या स्ट्रिंग हो। null अनुरोध को बंद कर देता है।
अच्छा key डिज़ाइन यह सुनिश्चित करता है कि संबंधित अनुरोध कैश प्रविष्टियाँ साझा करें और असंबंधित अनुरोधों की key आपस में न टकराएँ।
पुनः सत्यापन और नेटवर्क पर अतिरिक्त भार
SWR पुनः सत्यापन को समझदारी से संभालता है: dedupingInterval (डिफ़ॉल्ट 2 सेकंड) एक साथ कई घटक माउंट होने पर अनेक पुनः सत्यापनों को एक ही समय में शुरू होने से रोकता है। डुप्लिकेशन-रोधक अवधि के भीतर प्रत्येक key के लिए केवल एक अनुरोध भेजा जाता है।
इससे बड़े घटक-वृक्षों में होने वाली अचानक भारी अनुरोधों की समस्या रुकती है, जहाँ कई घटक एक ही डेटा लाते हैं।
Next.js के संदर्भ में SWR
SWR को Next.js के पीछे की कंपनी Vercel ने बनाया है और इसका एकीकरण सहज है। getServerSideProps या getStaticProps डेटा को पहले ही ला सकते हैं, और SWR क्लाइंट पर उस पहले से लाए गए मान से अपना डेटा भर लेता है।
इससे आपको सर्वर द्वारा रेंडर किया गया प्रारंभिक HTML और माउंट होने पर स्वचालित क्लाइंट-साइड पुनः सत्यापन मिलता है, यानी SSR और SWR की सबसे अच्छी खूबियों का संयोजन।
SWR पुनः सत्यापन कब करता है
निम्न में से कौन-सी चीज़ डिफ़ॉल्ट रूप से SWR का पुनः सत्यापन शुरू नहीं करती?
पाठ का पुनरावलोकन
SWR पुराना डेटा देते हुए पुनः सत्यापन रणनीति लागू करता है: कैश किया हुआ डेटा तुरंत दिखाता है, पृष्ठभूमि में उसका पुनः सत्यापन करता है और नया डेटा मिलने पर इंटरफ़ेस अपडेट करता है। यह फ़ोकस आने, दोबारा कनेक्ट होने, mutate और नियमित अंतराल पर जाँच के दौरान पुनः सत्यापन शुरू करता है। वैश्विक कैश घटकों के बीच अनुरोधों को दोहरने से रोकता है और fetcher फ़ंक्शन को पूरी तरह बदला जा सकता है।
यह मॉडल डेटा लाने वाले कोड को काफ़ी सरल बनाते हुए उपयोगकर्ताओं को बेहतर अनुभव किया जाने वाला प्रदर्शन देता है।
एआई शिक्षक के साथ React सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 88
- पाठ
- 324
अक्सर पूछे जाने वाले प्रश्न
क्या “SWR की मूल अवधारणाएँ: Stale-While-Revalidate” पाठ निःशुल्क है?
हाँ—“SWR की मूल अवधारणाएँ: Stale-While-Revalidate” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“SWR की मूल अवधारणाएँ: Stale-While-Revalidate” में मैं क्या सीखूँगा?
SWR की कैशिंग रणनीति समझें: पुराना डेटा तुरंत दिखाएँ, पृष्ठभूमि में फिर से सत्यापन करें और नया डेटा मिलने पर अपडेट करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“SWR की मूल अवधारणाएँ: Stale-While-Revalidate” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- SWR की मूल अवधारणाएँ: Stale-While-Revalidate
- useSWR Hook: फ़ेचिंग, लोडिंग और त्रुटि अवस्थाएँ
- SWR के साथ Mutation और आशावादी अपडेट
- SWR बनाम React Query: सही टूल चुनना