React Query और Zustand के साथ आशावादी पैटर्न
सुव्यवस्थित आशावादी UI कार्यप्रवाह के लिए React Query के onMutate/onError/onSettled कॉलबैक और Zustand उपयोग करें
React Query और Zustand के साथ आशावादी पैटर्न, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
React Query के useMutation का परिचय
React Query का useMutation हुक आशावादी संशोधनों के लिए तीन जीवनचक्र कॉलबैक के माध्यम से अंतर्निहित ढाँचा देता है: onMutate (परिवर्तन से पहले चलता है और एक संदर्भ वस्तु लौटाता है), onError (विफलता पर चलता है और संदर्भ प्राप्त करता है) और onSettled (सफलता या विफलता, दोनों पर चलता है)। यह संरचना विशेष रूप से आशावादी तरीकों के लिए बनाई गई है।
onMutate: आशावादी संशोधन का चरण
onMutate में तीन चरण पूरे करें: पहले, प्रभावित डेटा के लिए प्रगति में चल रही सभी क्वेरी रद्द करें (await queryClient.cancelQueries({ queryKey })), फिर वर्तमान कैश की प्रतिलिपि सुरक्षित रखें (queryClient.getQueryData(queryKey)) और अंत में कैश में आशावादी संशोधन लागू करें (queryClient.setQueryData(queryKey, updater))। इस प्रतिलिपि को संदर्भ के रूप में लौटाएँ।
onError: संदर्भ के साथ पुनर्स्थापन
onError कॉलबैक को त्रुटि, परिवर्तन के चर और onMutate से लौटाया गया संदर्भ प्राप्त होता है। पुनर्स्थापन के लिए संदर्भ का उपयोग करें: queryClient.setQueryData(queryKey, context.previousData)। संदर्भ, onMutate में ली गई स्थिति-प्रतिलिपि और onError में किए गए पुनर्स्थापन के बीच की कड़ी है।
onSettled: समन्वयन के लिए फिर से प्राप्त करना
onSettled कॉलबैक सफलता या विफलता की परवाह किए बिना चलता है। क्वेरी को फिर से प्राप्त करके सर्वर स्थिति के साथ समन्वय करने के लिए इसका उपयोग करें: queryClient.invalidateQueries({ queryKey })। इससे यह सुनिश्चित होता है कि किसी भी परिवर्तन के बाद — चाहे वह सफल रहा हो (सर्वर ने डेटा में बदलाव किया हो सकता है) या विफल हुआ हो (पुनर्स्थापन पूरा हो चुका हो) — आपकी स्थिति अंततः सर्वर की वास्तविक स्थिति के अनुरूप हो जाए।
React Query में आशावादी कार्य-सूची स्विच
एक व्यावहारिक उदाहरण: किसी कार्य-सूची तत्व की पूर्ण स्थिति को बदलना। onMutate में कार्यों की सूची की प्रतिलिपि सुरक्षित रखें, फिर कैश में उस विशेष कार्य-सूची तत्व को संशोधित करें। onError में संदर्भ से प्रतिलिपि वापस लाएँ। onSettled में कार्यों की क्वेरी को अमान्य करके उसे फिर से प्राप्त करें। उपयोगकर्ता को स्विच तुरंत बदलता हुआ दिखाई देता है; सर्वर पृष्ठभूमि में समन्वय करता है।
Zustand में आशावादी संशोधन
Zustand भंडार में आशावादी संशोधन सरल होते हैं: updateItem(id, changes) नाम की एक कार्रवाई बनाएँ, जो पहले भंडार में तत्व को तुरंत संशोधित करे और फिर API को कॉल करे। यदि API विफल हो जाए, तो दूसरी कार्रवाई revertItem(id, previousState) चलाएँ। Zustand की समकालिक स्थिति-प्रक्रियाएँ आशावादी चरण को तुरंत पूरा कर देती हैं।
जटिल संशोधनों के लिए Zustand के साथ Immer
Zustand की गहराई से अंतर्निहित स्थिति को आशावादी रूप से संशोधित करते समय साफ़-सुथरे बदलावों के लिए Immer के produce का उपयोग करें: set(produce(state => { state.items[id] = { ...state.items[id], ...changes } }))। Immer परिवर्तनशील वाक्य-विन्यास के साथ अपरिवर्तनीय संशोधनों को संभालता है, जिससे जटिल अंतर्निहित स्थिति में बदलाव पढ़ने योग्य और सुरक्षित बनते हैं।
React 19 का useOptimistic हुक
React 19 ने Server Actions के भीतर आशावादी संशोधनों के लिए अंतर्निहित हुक के रूप में useOptimistic(state, updateFn) पेश किया। const [optimisticState, addOptimistic] = useOptimistic(items, (state, newItem) => [...state, newItem])। addOptimistic(newItem) चलाने पर सर्वर कार्रवाई असमकालिक रूप से चलते हुए भी यूआई तुरंत संशोधित हो जाता है।
useOptimistic का स्वचालित पुनर्स्थापन
useOptimistic पुनर्स्थापन अपने-आप संभालता है। जब Server Action सफलता या त्रुटि के साथ पूरी हो जाती है, तो React आशावादी स्थिति को वापस लाकर सर्वर की वास्तविक स्थिति लागू करता है। आपको मैन्युअल पुनर्स्थापन तर्क लिखने की आवश्यकता नहीं है — React कार्रवाई की Suspense सीमा के दौरान आशावादी संशोधन का जीवनचक्र संभालता है।
तीनों तरीकों की तुलना
मैन्युअल आशावादी संशोधन पूरा नियंत्रण देते हैं, लेकिन अतिरिक्त प्रारंभिक कोड चाहते हैं। React Query का onMutate/onError/onSettled क्वेरी कैश के साथ जुड़कर स्वचालित समन्वयन करता है। Server Actions के लिए useOptimistic सबसे सरल है, लेकिन इसके लिए React 19 और सर्वर-कार्रवाई आर्किटेक्चर आवश्यक है। अपनी डेटा परत के आधार पर चुनें: सरल स्थानीय स्थिति के लिए मैन्युअल तरीका, REST एपीआई के लिए React Query और RSC/Server Actions के लिए useOptimistic।
सही तरीके का चुनाव
आशावादी तरीका चुनते समय अपने आर्किटेक्चर पर विचार करें। यदि आप पूरे ऐप में React Query का उपयोग करते हैं, तो उसका onMutate तरीका सुसंगत और कैश की जानकारी रखने वाला है। यदि आप वैश्विक स्थिति के लिए Zustand का उपयोग करते हैं, तो कार्रवाई-आधारित तरीका स्वाभाविक रूप से उपयुक्त बैठता है। यदि आप Server Actions के साथ React 19 पर हैं, तो useOptimistic स्वाभाविक विकल्प है। एक ही ऐप में तरीकों को मिलाकर उपयोग करना सामान्य और स्वीकार्य है।
React Query में पुनर्स्थापन सक्षम करने के लिए onMutate क्या लौटाना चाहिए
React Query में onMutate कॉलबैक को onError में पुनर्स्थापन सक्षम करने के लिए क्या लौटाना चाहिए?
पाठ-सार: आशावादी तरीके
React Query का useMutation onMutate (क्वेरी रद्द करना, प्रतिलिपि सुरक्षित रखना, आशावादी संशोधन लागू करना और संदर्भ लौटाना), onError (संदर्भ से प्रतिलिपि वापस लाना) और onSettled (फिर से प्राप्त करने के लिए अमान्य करना) का उपयोग करता है। Zustand के आशावादी संशोधन पहले स्थिति की कार्रवाई और फिर API को तुरंत चलाते हैं तथा विफलता पर पुनर्स्थापन करते हैं। React 19 का useOptimistic Server Actions के भीतर स्वचालित पुनर्स्थापन देता है। अपनी डेटा परत के आर्किटेक्चर के अनुकूल तरीका चुनें।
एआई शिक्षक के साथ React सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 88
- पाठ
- 324
अक्सर पूछे जाने वाले प्रश्न
क्या “React Query और Zustand के साथ आशावादी पैटर्न” पाठ निःशुल्क है?
हाँ—“React Query और Zustand के साथ आशावादी पैटर्न” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“React Query और Zustand के साथ आशावादी पैटर्न” में मैं क्या सीखूँगा?
सुव्यवस्थित आशावादी UI कार्यप्रवाह के लिए React Query के onMutate/onError/onSettled कॉलबैक और Zustand उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“React Query और Zustand के साथ आशावादी पैटर्न” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- आशावादी UI क्या है और इसे कब उपयोग करें
- आशावादी अपडेट मैन्युअल रूप से लागू करना
- त्रुटि पर रोलबैक और टकराव समाधान
- React Query और Zustand के साथ आशावादी पैटर्न