मैं रेडक्स के साथ रेक्टजेज़ का उपयोग कर रहा हूं और कुछ ट्यूटोरियल्स और कोडों पर मैं लोगों को पर सामान्यizr का उपयोग करने और उपयोग करने के लिए देखता हूं, राज्य को रखें। लेकिन इसे फ्लैट रखने में वास्तविक लाभ क्या है? अगर मैं नहीं करता तो क्या मुझे कोई समस्या आती है? क्या ये ज़रूरी हैं ?मुझे राज्य को फ्लैट क्यों रखना चाहिए
उत्तर
तीन मुख्य कारण हैं:
- नेस्ट अपडेट करना जावास्क्रिप्ट अपरिवर्तनीय वस्तुओं आम तौर पर भद्दा कोड है कि कठिन है बनाए रखने के लिए, जब तक आप प्रक्रिया
- अपरिवर्तनीय अद्यतन करने नेस्टेड डेटा है कि आवश्यकता है लपेट के लिए एक उपयोगिता लाइब्रेरी का उपयोग में परिणाम आप घोंसले पदानुक्रम में सभी वस्तुओं की नई प्रतियां वापस कर देते हैं। चूंकि घटक आम तौर पर डेटा पर उथले-समानता संदर्भ तुलना करते हैं, यह देखने के लिए कि क्या उन्हें अद्यतन करने की आवश्यकता है, नेस्टेड डेटा को अद्यतन करने का मतलब आमतौर पर अधिक ऑब्जेक्ट अपडेट किया जाता है, और वास्तविक घटकों को अलग होने पर भी अधिक घटकों को फिर से प्रस्तुत करना होगा।
- फ्लैट डेटा, और विशेष रूप से सामान्यीकृत डेटा में, घटकों को परिभाषित करने के लिए कुछ और अनुकूलित दृष्टिकोण सक्षम करता है (जैसे एक सूची जहां प्रत्येक सूची आइटम घटक स्वयं कनेक्ट होता है, एक वस्तु आईडी को प्रोप के रूप में दिया जाता है, और स्वयं को देखने के लिए ज़िम्मेदार होता है उस आईडी द्वारा आइटम का डेटा)
मुझे लगता है कि इसे सपाट रखकर, आप का मतलब है कि आप अपने राज्य वस्तु में घोंसले नहीं कर रहे हैं।
सलाह नहीं दी जाती है कि आप अपने राज्य में घोंसले रखें क्योंकि आपको कुछ घटनाओं के अनुसार अपना राज्य बदलना है।
यदि आप रेडक्स दस्तावेज़ीकरण को देखते हैं, तो वे चाहते हैं कि आप शुद्ध reducers प्राप्त करें। और आपके कार्य को शुद्ध करने का हिस्सा यह तर्कों को संशोधित नहीं कर रहा है।
जब आपके पास बहुत घोंसले होते हैं तो बिना किसी स्थिति में राज्य वस्तु को संशोधित किए बिना राज्य को बदलना मुश्किल होता है क्योंकि सभी जेएस ऑब्जेक्ट संदर्भ द्वारा पारित होते हैं। जब आपके पास बहुत घोंसले होते हैं तो आपको इसे संशोधित करने से पहले राज्य वस्तु की गहरी प्रतियां बनाना पड़ता है।
बहुत बहुत धन्यवाद! अब मैं कल्पना नहीं कर सकता कि मेरे राज्यों को झुकाव न करें :) –
- 1. क्या मुझे log4j.properties फ़ाइल को लाइब्रेरी में रखना चाहिए?
- 2. मुझे खाली बेस क्लास कहां रखना चाहिए?
- 3. मुझे लक्ष्य निर्देशिका में क्या रखना चाहिए?
- 4. MEF: मुझे कंपोज़िशनकंटर कहां रखना चाहिए?
- 5. jQuery टेम्पलेट्स - मुझे उन्हें कहां रखना चाहिए?
- 6. मुझे डेटाबेस कहां रखना चाहिए। सुनिश्चित करें?
- 7. मुझे अपना शेडर कोड कहां रखना चाहिए?
- 8. क्या मुझे खराब नामकरण सम्मेलन रखना चाहिए?
- 9. मुझे अपने जुनीट परीक्षण कहां रखना चाहिए?
- 10. मुझे जेनकींस में gradle.properties कहां रखना चाहिए
- 11. मुझे अपना जावास्क्रिप्ट कोड कहां रखना चाहिए?
- 12. मुझे imeActionId पर क्या रखना चाहिए?
- 13. मुझे कस्टम .d.ts फ़ाइलों को कहां रखना चाहिए?
- 14. मुझे कॉल को कहां रखना चाहिए [FBSettings publInstall: appId]
- 15. मुझे जंग में परीक्षण उपयोगिता कार्यों को कहां रखना चाहिए?
- 16. क्या मुझे पीईसी फाइलों को संस्करण नियंत्रण में रखना चाहिए?
- 17. मुझे * * * GetHashCode() को ओवरराइड क्यों करना चाहिए?
- 18. मुझे सूची के लिए चयन स्थिति कहां रखना चाहिए?
- 19. क्या मुझे अपने यूआरएल के अंत में .htm रखना चाहिए?
- 20. मुझे अपनी वेबसाइट में महत्वपूर्ण मेटा टैग क्या रखना चाहिए?
- 21. सी # क्या मुझे कनेक्शन पूलिंग में खुले कनेक्शन रखना चाहिए
- 22. मुझे PHP ढांचे को क्यों सीखना चाहिए?
- 23. क्या मुझे एक विफलता पंजीकृत करना जारी रखना चाहिए?
- 24. क्या मुझे टीएफएस के तहत बाइनरी संपत्तियां रखना चाहिए? कैसे?
- 25. Django OneToOneField - मुझे किस मॉडल में इसे रखना चाहिए?
- 26. एमएसपीसी, मुझे अपने [विषय()] विशेषताओं में क्या रखना चाहिए?
- 27. क्या मुझे वीबीए कक्षा वस्तुओं में डुप्लिकेट मान रखना चाहिए?
- 28. क्या मुझे एक पीओसीओ में सत्यापन तर्क रखना चाहिए?
- 29. क्या मुझे स्रोत नियंत्रण में टोडो सूचियां रखना चाहिए?
- 30. क्या मुझे छवियों के चारों ओर अनुच्छेद टैग रखना चाहिए?
आपके महान उत्तर के लिए बहुत बहुत धन्यवाद। यह पूरी तरह से मुझे आश्वस्त किया और मुझे इसे बेहतर समझने में मदद की :) –