2016-01-20 17 views
7

के साथ कोणीयज मैं रेडक्स पर कुछ पढ़ रहा हूं। जो कुछ मैंने पढ़ा है वह प्रतिक्रिया के साथ रेडक्स को जोड़ रहा है। मैं Angularjs का उपयोग करें। क्या रेडक्स बनाम सिर्फ एंजुलरजेस स्कोप के भीतर राज्य का प्रबंधन करने और कोणीय को बाइंडिंग का प्रबंधन करने की अनुमति देने का एक अच्छा कारण हैरेडक्स

+0

रेडक्स का उद्देश्य पुस्तकालयों (उपर्युक्त प्रतिक्रिया जैसे) के साथ उपयोग किया जाना है। कोणीय एक दृश्य पुस्तकालय से कहीं अधिक है, यह एक ढांचा है। रेडक्स के साथ आप वास्तव में क्या करने की कोशिश कर रहे हैं कि आप पहले से ही कोणीय के साथ हल करने में सक्षम नहीं हैं? ऐसा लगता है कि दोनों मिश्रणों में बहुत अधिक फीचर ओवरलैप/कोड डुप्लिकेशन शामिल होगा। –

+0

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

+0

ईमानदारी से, मैंने कभी दो मिश्रण करने के लिए सोचा नहीं है :)। मैं किसी भी संभावित लाभ पर टिप्पणी नहीं कर सकता, बस एक अजीब जोड़ी की तरह लगता है। क्या आपके द्वारा उल्लिखित लेखों के लिंक हैं? –

उत्तर

18

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

  • सच्चाई का एकल स्रोत (एकल राज्य वस्तु):

    मुख्य principles of Redux अभी भी कोणीय क्षुधा में लागू होते हैं। जैसा कि मैंने ऊपर कहा था, मुझे लगता है कि यह अलग-अलग कोणीय क्षेत्रों या सेवाओं में प्रबंधित बनाम एक ही स्थान पर होने पर राज्य का प्रबंधन करना आसान है। स्कोप-सूप कुछ ऐप्स में एक वास्तविक समस्या है।

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

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

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

प्रत्येक ऐप अलग है, लेकिन Redux का उपयोग करके एंगुलर ऐप्स के प्रकार में समझ में आता है जिस पर मैंने काम किया है।

+0

जेएफबी आपने स्टोर के बावजूद उपयोगकर्ता को हर क्षेत्र को भेजने का उल्लेख किया है। क्या यह मामला आधार पर मामला है? मुझे लगता है कि डिजाइनर तक यह निर्धारित करने के लिए कि वे किस स्तर का आवेदन राज्य बनाए रखना चाहते हैं, सही? – cgatian

+0

हाँ, यह आपकी आवश्यकताओं, या केवल डेवलपर वरीयता पर निर्भर करेगा। रेडक्स स्टोर में प्रत्येक उपयोगकर्ता इनपुट परिवर्तन को सहेजना मुश्किल है, क्योंकि एनजी-मॉडल सीधे आपके डेटा को म्यूट कर रहा है। किसी उपयोगकर्ता को फॉर्म डेटा दर्ज करने की आवश्यकता होने पर एक म्यूटेबल प्रति बनाना आसान होता है, फिर परिणाम समाप्त होने पर परिणाम को Redux स्टोर में सहेजें। लेकिन आपके पास ऐसी आवश्यकताएं हो सकती हैं जो उस दृष्टिकोण के साथ काम न करें। – JeffB

+0

मुझे उतना ही लगा। यदि आप कर सकते हैं, तो मेरे पास निम्नलिखित प्रश्न हैं। किसी भी सलाह की सराहना की जाएगी। http://stackoverflow.com/q/37265869/684869 – cgatian

0

Redux किसी भी जावास्क्रिप्ट तकनीक के साथ उपयोग किया जा सकता है। संक्षेप में आप इसे एक Agular परियोजना में एकीकृत कर सकते हैं। आजकल, यह अनुप्रयोगों के निर्माण के तरीके को बदल रहा है। यह एक unidirectional डेटा प्रवाह का उपयोग करके अनुप्रयोगों को गर्भ धारण करने के लिए एक नया तरीका सक्षम बनाता है। नतीजतन, यह डेटा परिवर्तनशीलता से जुड़े मुद्दों को खत्म करने के लिए आपको अपने आवेदन स्थिति और उपकरणों पर बेहतर नियंत्रण देता है। इस महान tutorial about using Redux in Angular projects पर एक नज़र डालें।