Redux - कई स्टोर, क्यों नहीं?


221

नोट के रूप में: मैंने Redux (बाओबाब, भी) के लिए डॉक्स पढ़े हैं, और मैंने Googling & परीक्षण का उचित हिस्सा किया है।

यह इतनी दृढ़ता से क्यों सुझाया गया है कि Redux ऐप में केवल एक स्टोर है?

मैं एक एकल-स्टोर सेटअप बनाम बनाम कई स्टोर सेटअप के पेशेवरों / विपक्ष को समझता हूं ( इस विषय पर SO पर बहुत सारे प्रश्नोत्तर हैं )।

IMO, यह वास्तु निर्णय उनकी परियोजनाओं की जरूरतों के आधार पर ऐप डेवलपर्स के लिए है। तो Redux के लिए इतना दृढ़ता से सुझाव क्यों दिया जाता है, लगभग अनिवार्य लगने के बिंदु तक ( हालांकि कुछ भी हमें कई स्टोर बनाने से नहीं रोक रहा है )?

EDIT: एकल-स्टोर में परिवर्तित होने के बाद प्रतिक्रिया

कुछ महीनों के बाद Redux के साथ काम करने पर जो एक जटिल एसपीए पर विचार करेगा, मैं कह सकता हूं कि एकल स्टोर संरचना के साथ काम करने के लिए एक शुद्ध खुशी है।

कुछ बिंदु जो दूसरों को यह समझने में मदद कर सकते हैं कि एकल स्टोर बनाम कई स्टोर क्यों कई, कई उपयोग-मामलों में एक लूट का सवाल है:

  • यह विश्वसनीय है : हम चयनकर्ताओं का उपयोग ऐप स्टेट के माध्यम से खुदाई करने और संदर्भ-प्रासंगिक जानकारी प्राप्त करने के लिए करते हैं। हम जानते हैं कि सभी आवश्यक डेटा एक ही स्टोर में हैं। यह सभी सवालों को टाल देता है क्योंकि राज्य के मुद्दे कहां हो सकते हैं।
  • यह तेजी से है : हमारे स्टोर में वर्तमान में 100 रेड्यूसर हैं, यदि अधिक नहीं हैं। उस गणना में भी, केवल कुछ मुट्ठी भर किसी भी प्रेषण पर डेटा को संसाधित करता है, अन्य केवल पिछली स्थिति को वापस करते हैं। यह तर्क कि एक विशाल / जटिल स्टोर ( reducers का nbr ) धीमा है, बहुत अधिक लूट है। कम से कम हमने वहाँ से आने वाले प्रदर्शन के मुद्दों को नहीं देखा है।
  • डिबगिंग फ्रेंडली : जबकि एक पूरे के रूप में रिडक्स का उपयोग करने के लिए यह सबसे ठोस तर्क है, यह एकल स्टोर बनाम मल्टीपल स्टोर के लिए भी जाता है। एप्लिकेशन बनाते समय आप इस प्रक्रिया ( प्रोग्रामर गलतियों ) में राज्य त्रुटियों के लिए बाध्य हैं , यह सामान्य है। PITA तब है जब उन त्रुटियों को डीबग करने में घंटों लग जाते हैं। एकल स्टोर ( और रिड्यूस-लॉगर ) के लिए धन्यवाद, हमने कभी भी किसी भी दिए गए राज्य के मुद्दे पर कुछ मिनटों से अधिक खर्च नहीं किया है।

कुछ संकेत

अपने Redux स्टोर के निर्माण में सच्ची चुनौती यह तय करना है कि इसे कैसे तैयार किया जाए। सबसे पहले, क्योंकि सड़क के नीचे संरचना को बदलना सिर्फ एक बड़ी पीड़ा है। दूसरे, क्योंकि यह काफी हद तक निर्धारित करता है कि आप किसी भी प्रक्रिया के लिए अपने ऐप डेटा का उपयोग कैसे कर रहे हैं, और क्वेरी कर रहे हैं। स्टोर की संरचना कैसे करें, इस पर कई सुझाव हैं। हमारे मामले में हमने निम्नलिखित को आदर्श माना:

{
  apis: {     // data from various services
    api1: {},
    api2: {},
    ...
  }, 
  components: {} // UI state data for each widget, component, you name it 
  session: {} // session-specific information
}

उम्मीद है कि यह प्रतिक्रिया दूसरों की मदद करेगी।

EDIT 2 - सहायक स्टोर टूल

आप में से उन लोगों के लिए जो सोच रहे हैं कि कैसे "आसानी से" एक एकल स्टोर का प्रबंधन करें , जो जल्दी से जटिल हो सकता है। ऐसे उपकरण हैं जो आपके स्टोर के संरचनात्मक निर्भरता / तर्क को अलग करने में मदद करते हैं।

नोर्मिज़्र है जो स्कीमा के आधार पर आपके डेटा को सामान्य करता है। यह तब आपके डेटा के साथ काम करने और आपके डेटा के अन्य हिस्सों को idएक शब्दकोश की तरह लाने के लिए एक इंटरफ़ेस प्रदान करता है ।

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


4
मुझे आपके द्वारा उपयोग की जा रही स्टोर संरचना के लिए आपका दृष्टिकोण पसंद है; हालाँकि, आप अपने राज्य में होने वाले बदलावों के लिए एपी राज्य परिवर्तन की मैपिंग कैसे कर रहे हैं? तो कहते हैं कि मैं अपने एपीआई से डोमेन विशिष्ट डेटा प्राप्त करता हूं, यह एक सामान्य डेटा संरचना में कैसे अनुवाद करता है जो मेरे घटकों में पाया जाएगा?
दीनदीन

आपके घटक मैप / उपयोग स्टोर डेटा आपके ऊपर कैसे है, वास्तव में। हालाँकि मुझे लगता है कि मैं आपके सवाल को पूरी तरह से नहीं समझ पा रहा हूँ, क्या आप एक विस्तृत सत्र शुरू कर सकते हैं?
सेबेस्टियन डैनियल

2
मुझे लगता है कि सवाल यह होगा: क्या आपके घटक एपिस राज्य से किसी को प्रस्तुत करते हैं, या वे केवल जो कुछ भी घटक राज्य में डालते हैं, उसे प्रस्तुत करते हैं। मुझे संदेह है कि यदि आप घटक की स्थिति से केवल रेंडर करने में कामयाब रहे हैं, तो आपने अपने घटकों और कंटेनरों को डोमेन विशिष्ट डेटा की उपस्थिति में भी अत्यधिक पुन: प्रयोज्य बनाने का एक शानदार तरीका ढूंढ लिया है। यदि आपके घटक एपीआई राज्य और घटक राज्य से आंशिक रूप से प्रतिपादन कर रहे हैं, तो मैं अनुमान लगा रहा हूं कि आप एपीसियों में डेटा को मैप करने के लिए डोमेन विशिष्ट कंटेनरों का उपयोग कर रहे हैं जो सामान्य सूचियों और प्राथमिकताओं को आपके घटकों को समझते हैं।
दीनदीन

2
मैं चयनकर्ताओं के साथ संयोजन में Redux का उपयोग करता हूं, जो मूल रूप से कार्यात्मक रूप से शुद्ध डेटा मैपर्स को याद करते हैं। प्रत्येक घटक अपडेट को संग्रहीत करने के लिए "प्रतिक्रिया करता है", और यदि कोई परिवर्तन इसके लिए प्रासंगिक है, तो यह डेटा का "चयन" करता है और तदनुसार प्रस्तुत करता है। तो हाँ, घटक केवल उनके लिए क्या मायने रखता है के आधार पर प्रस्तुत करते हैं। लेकिन यह सिर्फ Redux या स्टोर संरचना के कारण नहीं है। एक अपरिवर्तनीय डेटा स्टोर के संयोजन के कारण, डेटा परिवर्तनों के लिए एक संदर्भात्मक तुलना परीक्षण, और एक शुद्ध चयनकर्ता जो डेटा को घटक की जरूरत है, प्रारूप में इसकी आवश्यकता है।
सेबेस्टियन डैनियल

अरे @SebastienDaniel, क्या आप एक उदाहरण दिखा सकते हैं कि आप चेक को कैसे लागू कर रहे हैं जो प्रत्येक घटक को पता है कि क्या स्टोर अपडेट में परिवर्तन इसके लिए प्रासंगिक है? मेरा मतलब है कि यदि आप किसी प्रकार के सामान्य पैटर्न का उपयोग कर रहे हैं ... या यदि प्रत्येक विशिष्ट मामले में आप जाँच रहे हैं कि क्या विशिष्ट घटक-संबंधित डेटा बदल गया है।
जॉन बर्नडसन

जवाबों:


232

ऐसे कई मामले हैं जब आप कई स्टोर का उपयोग कर सकते हैं (उदाहरण के लिए यदि आपको हजारों आइटमों की सूचियों को अद्यतन करने में समस्या है जो एक ही समय में स्क्रीन पर प्रति सेकंड कई बार होती है)। यह कहा कि यह एक अपवाद है और अधिकांश ऐप्स में आपको कभी भी एक स्टोर से अधिक की आवश्यकता नहीं होती है।

हम डॉक्स में इस पर जोर क्यों देते हैं? क्योंकि फ्लक्स पृष्ठभूमि से आने वाले अधिकांश लोग यह मानेंगे कि कई स्टोर अपडेट कोड मॉड्यूलर बनाने का उपाय है। हालाँकि Redux का इसके लिए एक अलग समाधान है: reducer रचना।

कई reducers होने कि आगे एक reducer पेड़ में विभाजित कर रहे हैं आप Redux में मॉड्यूलर कैसे अद्यतन रखने के लिए है। यदि आप इसे नहीं पहचानते हैं और पहले से पूरी तरह से reducer संरचना को समझने के बिना कई दुकानों के लिए जाते हैं, तो आपको Redux सिंगल स्टोर आर्किटेक्चर के कई फायदे याद होंगे:

  • Reducer संरचना का उपयोग करने waitForसे फ्लक्स में "निर्भर अपडेट" को ला में एक रीड्यूसर लिखकर मैन्युअल रूप से लागू करना आसान हो जाता है, अतिरिक्त जानकारी और विशिष्ट क्रम में अन्य reducers को कॉल करके।

  • एक एकल स्टोर के साथ, राज्य को जारी रखना, हाइड्रेट करना और पढ़ना बहुत आसान है। सर्वर रेंडरिंग और डेटा प्रीफ़ैचिंग तुच्छ है, क्योंकि बस एक डेटा स्टोरेज है जिसे क्लाइंट को भरना और रिहाइड्रेट करना पड़ता है, और JSON स्टोर की आईडी या नाम के बारे में चिंता किए बिना अपनी सामग्री का वर्णन कर सकता है।

  • एक एकल स्टोर Redux DevTools समय यात्रा सुविधाओं को संभव बनाता है। यह Redux-undo या redux-optimist जैसे सामुदायिक एक्सटेंशन को भी आसान बनाता है क्योंकि वे reducer के स्तर पर काम करते हैं। ऐसे "रेड्यूसर एन्हांसर्स" को दुकानों के लिए नहीं लिखा जा सकता है।

  • एक एकल स्टोर गारंटी देता है कि प्रेषण के बाद ही सब्सक्रिप्शन कहा जाता है। अर्थात्, जब तक श्रोताओं को सूचित नहीं किया जाता, तब तक राज्य पूरी तरह से अद्यतन हो चुका होता है। कई दुकानों के साथ, ऐसी कोई गारंटी नहीं है। यह एक कारण है कि फ्लक्स को waitForबैसाखी की जरूरत है। एक एकल स्टोर के साथ, यह एक समस्या नहीं है जिसे आप पहली जगह में देखते हैं।

  • इन सबसे ऊपर, Redux में कई स्टोर अनावश्यक हैं (परफॉरमेंस एज केस को छोड़कर जो आप पहले भी प्रोफाइल करने वाले हैं)। हम डॉक्स में इसे एक महत्वपूर्ण बिंदु बनाते हैं, इसलिए आपको Redux का उपयोग करने के बजाय Redux संरचना और अन्य Redux पैटर्न सीखने के लिए प्रोत्साहित किया जाता है जैसे कि यह फ्लक्स था, और इसके लाभ खो रहे थे।


11
मुझे लगता है मैं reducer रचना का पूरा लाभ / आवश्यकता समझ में नहीं आया था। आपके उत्तर के लिए धन्यवाद, मैंने कुछ और पढ़ने और एक उदाहरण (टूडो एमवीसी, फिर से) किया। इस तरह के एक छोटे से उदाहरण के साथ reducer रचना द्वारा प्रदान किए गए वास्तविक सुधार को समझना मुश्किल था। हालांकि, थोड़े विचार के साथ, बड़े पैमाने पर लाभ स्पष्ट (अब) है। धन्यवाद फिर से, बढ़िया जवाब!
सेबेस्टियन डैनियल

4
@ सेबैस्टियन "खरीदारी की टोकरी" का उदाहरण इसके लिए बेहतर है जो मुझे लगता है।
दान Abramov

3
मैं धीरे-धीरे एक पारंपरिक (गैर एसपीए) एप्लिकेशन में रिड्यूस लागू कर रहा हूं। मैं प्रत्येक "पूरे" के लिए मल्टीलैप स्टोर्स का उपयोग कर रहा हूं, जब तक कि एक ही स्टोर का उपयोग करने के लिए पूरे ऐप को संशोधित नहीं किया जा सकता है तब तक मैं एक प्रतिक्रिया / रिडक्स कार्यान्वयन में परिवर्तित हो जाता हूं।
पॉल नोपफ

5
@DanAbramov जिज्ञासु आपका क्या लेगा, ऐसी स्थिति में होगा जब आपके पास अपना मुख्य "ऐप" हो, जो अपना खुद का Redux स्टोर चला रहा हो और npm के जरिए एक स्टैंडअलोन "app" आयात कर रहा हो जो अपना अलग Redux स्टोर चलाता हो। उदाहरण के लिए, यदि आपकी कंपनी की अन्य टीमों में से किसी ने UI के साथ किसी प्रकार की संदेश सेवा की है, जिसे आप उस डेटा के साथ अपने स्टोर को प्रदूषित किए बिना खींचना चाहते हैं।
natlee75

6
@ natlee75 "Redux में कई दुकानों के उपयोग के कुछ वैध कारणों में शामिल हो सकते हैं: [...] एक बड़े अनुप्रयोग में एक घटक के रूप में Redux ऐप को अलग करना, जिस स्थिति में आप प्रति रूट घटक उदाहरण के लिए एक स्टोर बनाना चाहते हैं।" से redux.js.org/docs/FAQ.html#store-setup-multiple-stores
केविन

24

सैकड़ों या हजारों रिड्यूसर के साथ कुछ बहुत बड़े एंटरप्राइज़ ऐप में, ऐप के विभिन्न क्षेत्रों को पूरी तरह से अलग ऐप के रूप में सोचना अक्सर उपयोगी होता है। उन मामलों में (जहां यह वास्तव में कई ऐप हैं जो एक डोमेन नाम साझा करते हैं), मैं कई स्टोर का उपयोग करता हूं।

उदाहरण के लिए, मैं निम्नलिखित सामान्य कार्यक्षमता वाले क्षेत्रों को अलग-अलग ऐप्स के रूप में मानता हूं:

  • व्यवस्थापक
  • Analytics / डेटा विज़ डैशबोर्ड्स
  • बिलिंग प्रबंधन और खरीद प्रवाह
  • एंटरप्राइज अकाउंट टीम / अनुमति प्रबंधन

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

बहुत बड़ी ऐप्स को प्रबंधित करने का सबसे अच्छा तरीका यह है कि उन्हें कई छोटे ऐप की रचना की तरह माना जाए।

यदि आपका ऐप ~ 50k LOC से कम है, तो आपको शायद इस सलाह को अनदेखा करना चाहिए और इसके बजाय डैन की सलाह का पालन करना चाहिए।

यदि आपका ऐप 1 मिलियन से अधिक LOC है, तो आपको संभवतः मिनी-ऐप्स को विभाजित करना चाहिए, भले ही आप उन्हें एक मोनो रेपो में बनाए रखें।


5

यह वास्तु निर्णय उनकी परियोजनाओं की जरूरतों के आधार पर ऐप डेवलपर्स के लिए है

आप अपनी ही दुनिया में रह रहे हैं। मैं ऐसे लोगों से मिल रहा हूं जो redux का उपयोग करते हैं, क्योंकि यह लोकप्रिय है, रोज़ है। आप सोच भी नहीं सकते कि बिना किसी निर्णय के कितनी परियोजनाओं को फिर से शुरू किया गया। मुझे Redux एप्रोच से नफरत है लेकिन इसका इस्तेमाल करना पड़ा, क्योंकि दूसरे डेवलपर्स को कुछ नहीं पता। यह सिर्फ फेसबुक द्वारा फुलाया गया एक महाकाव्य बुलबुला है।

  • यह विश्वसनीय नहीं है क्योंकि स्टोर के हिस्से अलग-थलग नहीं हैं।
  • यह अक्षम है क्योंकि आप हैश ट्राई क्लोनिंग और ट्रैवर्सिंग कर रहे हैं। जब उत्परिवर्तन अंकगणितीय रूप से बढ़ता है - जटिलता ज्यामितीय रूप से बढ़ती है। आप इसे किसी भी reducers, चयनकर्ताओं, आदि को पुनः निर्धारित करके ठीक नहीं कर सकते हैं।
  • जब यह धीमा हो जाता है तो कोई भी इसे अलग-अलग स्टोर में अलग-अलग अनुप्रयोगों में विभाजित नहीं करना चाहता है। कोई भी पैसा वापस करने पर खर्च नहीं करना चाहता। लोग आमतौर पर कुछ स्मार्ट घटकों को डंप में परिवर्तित कर रहे हैं और यही वह है। क्या आप जानते हैं कि भविष्य में redux डेवलपर्स का क्या इंतजार है? वे इन नर्क को बनाए रखेंगे।
  • यह डिबगिंग फ्रेंडली नहीं है । स्टोर के लगभग अलग-थलग भागों के बीच कनेक्शन को डीबग करना कठिन है। इन कनेक्शनों की मात्रा का विश्लेषण करना भी बहुत कठिन है।

आइए कल्पना करें कि आपके पास कई रिडक्स स्टोर हैं। आप अप्रत्यक्ष डेटा प्रवाह को तोड़ देंगे। आपको तुरंत एहसास होगा कि आपके पास दुकानों के बीच कितने कनेक्शन हैं। आप इन कनेक्शनों से पीड़ित हो सकते हैं, परिपत्र डिप्स के साथ लड़ रहे हैं, आदि।

यूनिडायरेक्शनल प्रवाह के साथ एकल अपरिवर्तनीय स्टोर हर बीमारी के लिए एक अमृत नहीं है। यदि आप प्रोजेक्ट आर्किटेक्चर को बनाए नहीं रखना चाहते हैं, तो आप वैसे भी पीड़ित होंगे।


आपने जो कहा, वह मुझे अच्छा लगा और यहां मैंने इस पर संबंधित प्रश्न पूछा। क्या आप कुछ समय पाने और अपनी राय साझा करने के लिए इसे देखना पसंद करेंगे? मैंने Reddit में जो प्रश्न पूछा था, क्योंकि SO ऐसे प्रश्नों को यहाँ प्रोत्साहित नहीं करता है।
अरूप रक्षित

3

एकाधिक स्टोर निम्नलिखित उपयोग के मामलों में सहायक हो सकते हैं। 1. यदि आपके पास बड़े घटक हैं जो डेटा संरचना, व्यवहार, अनुप्रयोग संदर्भ के मामले में एक-दूसरे से स्वतंत्र हैं। इन घटकों को अलग करने से आपके डेटा और एप्लिकेशन प्रवाह को प्रबंधित करना आसान हो जाता है। यह आपके घटकों के स्वतंत्र विकास और रखरखाव में भी मदद करता है। 2. प्रदर्शन की समस्याएं: एक विशिष्ट उपयोग का मामला नहीं है, लेकिन अगर आपके कुछ घटक बहुत बार अपडेट हो रहे हैं और अन्य घटकों पर कोई प्रभाव नहीं पड़ता है, तो शायद आप विभिन्न स्टोर के लिए जा सकते हैं।

अन्य सभी मामलों के लिए, आपको कई स्टोर करने की आवश्यकता नहीं हो सकती है। जैसा कि डैन कहते हैं, विचारशील Reducer रचनाएं बनाना बेहतर समाधान साबित हो सकता है।


आपका संदेश ऐसा लगता है कि "कुछ मामलों को छोड़कर हमेशा redux का उपयोग करें" == "आपको कुछ मामलों को छोड़कर प्रोजेक्ट आर्किटेक्चर की आवश्यकता नहीं है"। यह वास्तविकता के बहुत करीब है, मैं खुश हूं।
पुच्चु

2

क्यों हम redux का उपयोग करके कई स्टोर का उपयोग नहीं कर सकते ????

Redux में यह आवश्यक नहीं है क्योंकि डेटा डोमेन के बीच पृथक्करण पहले से ही एक रिड्यूसर को छोटे रिड्यूसर में विभाजित करके प्राप्त किया जाता है।


क्या मुझे कई स्टोर बनाने चाहिए? क्या मैं अपने स्टोर को सीधे आयात कर सकता हूं, और स्वयं घटकों में उपयोग कर सकता हूं?

मूल प्रवाह पैटर्न का वर्णन है कि एक ऐप में कई "स्टोर" हैं, प्रत्येक में डोमेन डेटा का एक अलग क्षेत्र है। यह एक स्टोर "वेटफ़ॉर" को अपडेट करने के लिए दूसरे स्टोर की आवश्यकता जैसे मुद्दों को पेश कर सकता है।

Redux में यह आवश्यक नहीं है क्योंकि डेटा डोमेन के बीच पृथक्करण पहले से ही एक रिड्यूसर को छोटे रिड्यूसर में विभाजित करके प्राप्त किया जाता है।

कई अन्य प्रश्नों के साथ, एक पृष्ठ में कई अलग-अलग Redux स्टोर बनाना संभव है, लेकिन इसका उद्देश्य केवल एक ही स्टोर रखना है। एक एकल स्टोर होने से Redux DevTools का उपयोग करने में सक्षम बनाता है, डेटा को सरल और पुन: सक्रिय करता है, और सदस्यता तर्क को सरल करता है।

Redux में कई दुकानों के उपयोग के कुछ मान्य कारणों में शामिल हो सकते हैं:

राज्य के कुछ हिस्से के लगातार अपडेट के कारण एक प्रदर्शन समस्या का समाधान, जब एप्लिकेशन को रूपरेखा द्वारा पुष्टि की जाती है। एक बड़े अनुप्रयोग में एक घटक के रूप में एक Redux ऐप को अलग करना, जिस स्थिति में आप प्रति रूट घटक उदाहरण के लिए एक स्टोर बनाना चाह सकते हैं। हालाँकि, नए स्टोर बनाना आपकी पहली वृत्ति नहीं होनी चाहिए, खासकर यदि आप फ्लक्स पृष्ठभूमि से आते हैं। पहले reducer रचना की कोशिश करो, और केवल कई दुकानों का उपयोग करें अगर यह आपकी समस्या का समाधान नहीं करता है।

इसी तरह, जब आप अपने स्टोर का उदाहरण सीधे आयात करके देख सकते हैं, तो यह Redux में अनुशंसित पैटर्न नहीं है। यदि आप एक स्टोर इंस्टेंस बनाते हैं और इसे एक मॉड्यूल से निर्यात करते हैं, तो यह एक सिंगलटन बन जाएगा। इसका मतलब यह है कि किसी बड़े ऐप के घटक के रूप में Redux ऐप को अलग करना कठिन होगा, यदि यह कभी आवश्यक हो, या सर्वर रेंडरिंग को सक्षम करने के लिए, क्योंकि सर्वर पर आप हर अनुरोध के लिए अलग स्टोर इंस्टेंसेस बनाना चाहते हैं।

Redux द्वारा आधिकारिक डॉक्टर


1

Redux में एक स्टोर होने से वास्तव में हमें कई मामलों में आवश्यकता होती है, मैंने Redux और Flux दोनों का उपयोग किया और मेरा मानना ​​है कि Redux बेहतर काम करता है!

यह मत भूलो कि स्टोर एक जावास्क्रिप्ट ऑब्जेक्ट में है, इसलिए जब आपके पास केवल एक स्टोर है, तो इसे आसानी से बढ़ाया और पुन: उपयोग किया जा सकता है, मेरे लिए, एक स्टोर होने से Redux dev टूल्स का उपयोग करके ट्रैवर्स करना बहुत आसान हो जाता है और इसे मिश्रित नहीं किया जा सकता है बड़े अनुप्रयोग ...

इसके अलावा एक स्टोर की अवधारणा हमारे लिए डेटाबेस की नकल कर रही है, सच्चाई का एक स्रोत जिसे आप इसे बदल सकते हैं और आप इसे ब्राउज़र मेमोरी में एक्सेस कर सकते हैं ...

यदि पूरे आवेदन को अच्छी तरह से प्रबंधित किया जाता है, तो एक स्टोर पूरे आवेदन की स्थिति का प्रबंधन करने के लिए पर्याप्त हो सकता है ...


3
इसलिए सभी को यह मानना चाहिए कि सिंगल स्टोर बेहतर काम करेगा और कोई भी यह नहीं समझा सकता है कि क्यों। यह मुझे कुछ याद दिलाता है ...
puchu
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.