2017-01-11 29 views
15

चुनता हूं मैं रेडक्स सीख रहा हूं और एक हिस्सा मैं अस्पष्ट हूं, मैं प्रतिक्रिया राज्य बनाम रेडक्स स्टोर और फिर कार्यों को प्रेषित करने के बीच दृढ़ संकल्प कैसे कर सकता हूं। मेरे पढ़ने से अब तक ऐसा लगता है कि मैं रेडक्स स्टोर के स्थान पर प्रतिक्रिया स्थिति का उपयोग कर सकता हूं और अभी भी चीजें कर सकता हूं। मैं रेडक्स स्टोर का उपयोग करने के साथ चिंताओं को अलग करता हूं और केवल 1 कंटेनर घटक और शेष इसे स्टेटलेस घटक के रूप में समझता हूं, लेकिन मैं कैसे प्रतिक्रिया करता हूं कि रिएक्ट स्टेट वीएस रेडक्स स्टोर का उपयोग कब करना मेरे लिए बहुत स्पष्ट नहीं है। क्या कोई मदद कर सकता है?मैं कब प्रतिक्रिया राज्य बनाम रेडक्स स्टोर

धन्यवाद!

+1

यह रेड रेडक्स में प्रवेश करने वाले लोगों द्वारा सामना की जाने वाली एक आम दुविधा है। लेकिन मैं; ​​आवेदन राज्य बनाम घटक राज्य के बीच अंतर को समझने की सिफारिश करता हूं। – semuzaboi

+0

दान एब्रमोव (रेडक्स के निर्माता) [पहले ही इसका उत्तर दिया गया है) (https://github.com/reactjs/redux/issues/1287)। – totymedli

उत्तर

20

हैं:

वहाँ वास्तव में कोई रोचक पोस्ट कहा जाता है आप दान अब्रामोव, redux के निर्माता है कि आप एक बेहतर जवाब की तुलना में मैं क्या दे सकता है द्वारा redux की जरूरत नहीं हो सकता है अन्य घटक, या घटक को अनमाउंट किए जाने पर राज्य को रखने की आवश्यकता नहीं है, तो आप इसे घटक के राज्य में डाल सकते हैं।

आप सोच सकते हैं कि रेडक्स स्टोर फ्रंट-एंड का डेटाबेस है, यदि आपके पास एपीआई से उत्पादित डेटा डेटा जैसा कुछ है, तो रेडक्स स्टोर सही जगह है; यदि आपके पास ड्रॉपडाउन घटक है, जो isOpen प्रोप लेता है, तो उस ड्रॉपडाउन का पैरेंट केवल dropdownIsOpen को घटक स्थिति के रूप में रख सकता है। https://github.com/reactjs/redux/issues/1287

इसके अलावा, आप ने कहा

केवल 1 कंटेनर घटक और इसे के बाकी के रूप राज्यविहीन घटक

यह गलत है:

अधिक जानकारी के लिए यहां दान से जवाब है । आपके पास कई कंटेनर घटक हो सकते हैं। एक कंटेनर घटक में एक और कंटेनर घटक भी हो सकता है।

+0

हाँ।Redux FAQ से इन उत्तरों को भी देखें: http://redux.js.org/docs/faq/OrganizingState.html#organizing-state-only-redux-state, http://redux.js.org/docs/faq /ReactRedux.html#react-multiple-components। – markerikson

0

आप बिल्कुल सही हैं। रेडक्स (और सामान्य रूप से फ्लक्स आर्किटेक्चर) बड़े ऐप बनाने में मदद के लिए केवल औपचारिकता उपकरण हैं। वे बिल्कुल जरूरी नहीं हैं। राज्य के साथ साझा करने के लिए की जरूरत नहीं है https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.7093fm1z8

0

पुस्तक से:

सभी की

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

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