2016-04-25 14 views
5

एक Redux शुरुआत, यह देखते हुए (के विचार) एक कुछ बड़े आवेदन मैं के लिए इसी तरह एक रूट कम करने की कल्पना के रूप में: इस मामले मेंआप Redux 'राज्य को कैसे साफ करते हैं?

const rootReducer = combineReducers({ accounting, crm, sales }) 

एप्लीकेशन स्टेट लेखांकन, CRM होंगे, और वह बिक्री उपयोगकर्ता है, भले ही केवल आवेदन के एक हिस्से का उपयोग कर। यह फायदेमंद हो सकता है, उदाहरण के लिए लेखांकन और सीआरएम के बीच आगे और पीछे स्विच करते समय कैश के रूप में, लेकिन संभवतः आप कभी भी खोले गए सभी विचारों के सभी डेटा को बरकरार रखना नहीं चाहते हैं, यह बिना किसी छंटनी के पूर्ण संभव राज्य पेड़ है, आवेदन के भीतर हमेशा के लिए या पूरे पेड़ को लोड पर प्रारंभिक स्थिति में शुरू करना।

क्या वहां ऐसे मुहावरे, पैटर्न या पुस्तकालय हैं जो इसे हल करते हैं या क्या मुझे कुछ याद आ रहा है?

एक आंशिक समाधान है जो सभी डेटा को बनाए रखना हल मैं उनकी आरंभिक स्थिति में राज्य के कुछ हिस्सों को रीसेट जब आवेदन के कुछ भागों से बाहर नेविगेट करने जैसे कुछ कथात्मक नियम दिए की तरह कुछ कल्पना के रूप में:

  • accounting = {} सेट (परोक्ष रूप से, इस तरह के रूप ACCOUNTING_LEAVING एक कार्रवाई के माध्यम से) जब <Accounting/> प्राप्त करता componentWillUnmount
  • हटाने/crm.mail = {} सेट जब <MailEditor/> प्राप्त करता componentWillUnmount

मैंने ऐसे उदाहरण नहीं देखे हैं जो किसी भी तरह से राज्य को साफ करते हैं। कई "सूची + विस्तार दृश्य" उदाहरण { list: [...], detail: {...} } जैसे राज्य संग्रह करते हैं, लेकिन विस्तार से स्विच करते समय सूची न तो खाली होती है, न ही हटा दी जाती है, न ही हटा दी जाती है। यह अच्छा है जब मैं कुछ पलों बाद सूची में वापस आ सकता हूं, लेकिन डेटा जारी किए बिना 9 से 5 तक एप्लिकेशन का उपयोग करते समय नहीं।

उत्तर

4

कुछ संबंधित विचार:

  • जब तक आप अपने दुकान में कैश हो जाने की दर्जनों या डेटा की मेगाबाइट के सैकड़ों उम्मीद कर रहे हैं, तो आप शायद इस बारे में बहुत जल्द ही चिंता कर रहे हैं। अपना ऐप, बेंचमार्क लिखें, और उसके बाद अनुकूलित करें।
  • स्टोर के हिस्सों को साफ़ करने के लिए क्रियाओं को प्रेषित करना पूरी तरह से वैध और उचित है।
  • मेरा Redux addons ecosystem catalog में कुछ पुस्तकालय सूचीबद्ध हो सकते हैं जो उपयोगी होंगे। विशेष रूप से, Component State और Reducer पृष्ठ कुछ पुस्तकालयों को इंगित करते हैं जो आपके स्टोर से रेड्यूसर को गतिशील रूप से जोड़ने और हटाने और राज्य को रीसेट करने जैसी चीजें करते हैं।
  • आप उच्च गुणवत्ता वाले React and Redux tutorials के मेरे संग्रह में रुचि भी ले सकते हैं।

कुल मिलाकर, आप अपने राज्य को व्यवस्थित करते हैं, जब आप इसे अपडेट करते हैं, और आप इसे अपडेट करते हैं तो आप पर निर्भर करता है। Redux बस अद्यतन करने की प्रक्रिया के लिए एक पैटर्न और नियम प्रदान करता है।

+0

(अन्य) सहायक सूची, लगभग तुरंत मुझे प्रतिक्रिया-UI में ले जाती है, जो एक समान फैशन (घटक WillUnmount पर) को हटाने के लिए प्रतीत होता है; मैं कुछ पुस्तकालयों की जांच करूंगा (या जोड़ ...) मेरे उपयोग के मामलों के लिए उपयुक्त है। रेड्यूसर और राज्य के प्रबंधन के लिए घटक-आधारित दृष्टिकोण वहां कई अलग-अलग तरीकों से हल हो जाता है (कम से कम जितना विचार हो सकता है कि राज्य क्या होना चाहिए)। –

+3

रुको, आप मुझे बता रहे हैं कि विभिन्न डेवलपर्स के पास अलग-अलग विचार हैं कि चीजें कैसे करें? मैं चौंक गया हूँ, _shocked_!:) – markerikson

+0

मैं सिर्फ रेडक्स की जांच की प्रक्रिया में हूं और इससे बहुत उलझन में हूं। यह मेरे लिए तार्किक लगता है कि एक बड़े, बहु-दृश्य अनुप्रयोग में, आप आम तौर पर _don_t_ को ब्राउज़र में जारी रखना चाहते हैं _after_ उपयोगकर्ता ने "पृष्ठ" छोड़ा है। घटकों में राज्य भंडारण का मतलब है कि आपको इस बारे में चिंता करने की ज़रूरत नहीं है - राज्य को घटक के साथ नष्ट कर दिया गया है - लेकिन इसे रेडक्स स्टोर में डालने के लिए अपने जीवन चक्र को स्पष्ट रूप से प्रबंधित करने के मामले में एक महत्वपूर्ण ओवरहेड की आवश्यकता होती है। इससे मुझे रेडक्स और _towards_ से राज्य प्रबंधन के लिए एक घटक-आधारित दृष्टिकोण से बहुत भारी _away_ दुबला बना दिया जाता है। मैं क्या खो रहा हूँ? –

संबंधित मुद्दे