2015-03-02 12 views
35

बैकबोन + प्रतिक्रिया पर फ्लक्स + प्रतिक्रिया के फायदे क्या हैं। एक विशाल जटिल कोड बेस के लिए कोड विकास आसानी के अलावा कोई प्रदर्शन अंतर है।फ्लक्स + प्रतिक्रिया बनाम बैकबोन + प्रतिक्रिया

क्या होगा यदि हमारे पास मॉडल के बीच 1: 1 संबंध है और बैकबोन + प्रतिक्रिया का उपयोग करने वाले एप्लिकेशन में एक प्रतिक्रिया दृश्य है?

उत्तर

41

फ्लक्स एक वास्तुकार आवेदन प्रतिक्रिया का निर्माण करने के पैटर्न है। तो आप डेटा को लाने और स्टोर करने के लिए अपने स्टोर के अंदर बैकबोन मॉडल और संग्रह का उपयोग कर सकते हैं।

और यदि केवल रेक्ट की वर्चुअल डॉम सुविधा का उपयोग करना चाहते हैं, तो react.js का उपयोग करने की कोई आवश्यकता नहीं है। आपके आवेदन में वर्चुअल डोम सुविधा जोड़ने के कई पुस्तकालय हैं (https://github.com/Matt-Esch/virtual-dom)।

मेरे सिफारिश: (; मत भूलना अगर आप isomorphic आवेदन का निर्माण कर रहे अपने कस्टम सिंक समारोह को परिभाषित करने के http://ampersandjs.com/ के साथ मिलकर किया जा सकता है) यदि आप फ्लक्स पैटर्न का उपयोग करेगा मैं दृढ़ता से आप http://facebook.github.io/immutable-js/ उपयोग करने के लिए सलाह देते हैं। मूल रूप से प्रतिक्रिया के साथ रीढ़ की हड्डी के मॉडल का उपयोग करने के कोई लाभ नहीं हैं (रीढ़ की हड्डी भारी है, इसे अंडरस्कोर की आवश्यकता है, जो धीमा है; मैं इसके बजाय https://lodash.com/ का उपयोग करता हूं)।

+0

मैं इस बात को जोड़ दूंगा कि जब मैंने एमवीसी में मॉडल के समान होने के रूप में अपने स्टोरों के बारे में सोचना बंद कर दिया तो मुझे फ्लक्स बहुत बेहतर लगा, विशेष रूप से उन्हें निश्चित रूप से बैकबोन मॉडल के रूप में अपना डेटा नहीं लेना चाहिए। क्रियाओं को एपीआई से बात करनी चाहिए, और केवल प्रेषक के माध्यम से स्टोर को डेटा खिलाएं: https://cask.scotch.io/2014/10/V70cSEC.png। यदि आप इस तरह से इसके बारे में सोचते हैं, तो यह और अधिक स्पष्ट करता है कि बैकबोन मॉडल बहुत अच्छे फिट क्यों नहीं हैं। –

+0

हम अपने कोडबेस के कुछ हिस्सों में बैकबोन + प्रतिक्रिया का उपयोग करते हैं (प्रतिक्रिया के साथ एकीकृत पुरानी विरासत रीढ़ की हड्डी कोड), और आईएमओ, यह प्रतिक्रिया के उद्देश्य को हरा देता है, यानी, एक यूनिडायरेक्शनल डेटा प्रवाह के विचार। बैकबोन को उन मॉडलों के साथ काम करने के लिए डिज़ाइन किया गया है जो आवश्यक रूप से यूनिडायरेक्शनल नहीं हैं। – kunl

4

आईएमएचओ फ्लक्स स्टोर बैकबोन मॉडल/संग्रह के साथ असंगत नहीं हैं। आप शायद फ्लक्स स्टोर्स के रूप में बैकबोन संग्रह का उपयोग कर सकते हैं, जब तक आप उन्हें फ्लक्स प्रेषक के साथ एकीकृत करते हैं और आप उन्हें एक प्रतिपादन ट्रिगर करने के लिए किसी ईवेंट को उत्सर्जित करने की अनुमति देते हैं।

मुझे यकीन नहीं है कि बैकबोन मॉडल पहले स्थान पर अपरिवर्तनीय डेटा संरचनाएं हैं, इस प्रकार प्रतिपादन को अनुकूलित करने के लिए प्रतिक्रिया के लिए कठिन बनाते हैं।

मैं यह भी कहूंगा कि मुझे वास्तव में इन सभी बैकबोन मॉडल/संग्रह विधियों को वास्तव में उपयोगी नहीं मिला। फ्लक्स आर्किटेक्चर में, API अनुरोधों को एक्शन क्रिएटर द्वारा निकाल दिया जाएगा, न कि दुकानों द्वारा सीधे, इस प्रकार एकाधिक स्टोर को उसी अनुरोध को पूरा करने की अनुमति मिलती है।

Where should ajax request be made in Flux app?

+1

@fisherwebdev टिप्पणी के धागे में उनके उत्तर के लिए: "नहीं, स्टोर में डेटा के लिए कॉल करना [फ्लक्स] प्रतिमान को तोड़ता नहीं है।" http://stackoverflow.com/questions/26632415/where-should-ajax-request-be-made-in-flux-app#comment46461641_26637579 –

+0

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

1

प्रतिक्रिया के बारे में एक अच्छी बात यह है कि यह अज्ञेयवादी है - आप बिना किसी समस्या के बैकबोन मॉडल और संग्रह के साथ इसका उपयोग कर सकते हैं।

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

मैं बैकबोन मॉडल/संग्रह का उपयोग फ्लक्स स्टोर के रूप में करने की अनुशंसा नहीं करता - वे एक ही चीज़ नहीं हैं। मुख्य कारण यह है कि एक फ्लक्स स्टोर को बाहर से नहीं बदला जा सकता है - यह सेटर्स प्रदान नहीं करता है। कार्यों के जवाब में एक फ्लक्स स्टोर अपने स्वयं के राज्य को बदल देता है। और अगर आप "फ्लक्स" जिस तरह से भंडार के रूप में रीढ़ मॉडल का उपयोग कर का पालन करें, अपने कोड अभी भी दुकान है कि टीम के अन्य सदस्यों, उदाहरण के लिए द्वारा दुरुपयोग किया जा सकता बाहर से राज्य के सीधे प्रभाव के लिए खुला संभावनाएं है ...

0

+1 Vetrenko मैक्सिम रीढ़ की हड्डी और वास्तुकला पैटर्न के एकीकरण के बारे में जवाब। फ्लक्स प्रतिक्रिया ऐप्स के लिए एक डेटा प्रवाह पैटर्न है और आप चाहते हैं कि किसी भी डेटा स्टोर/मॉडल ढांचे का उपयोग कर सकते हैं।

फ्लक्स + प्रतिक्रिया उपयोग करने के लाभों:

  • आसान समझ डेटा दृश्य
  • से प्रवाह
  • बेहतर कोड संगठन
  • मॉडलों के साथ
  • आसान डिबगिंग डेटा मुद्दों
  • compartmentalize डेटा संग्रह/मॉडल कोड का

उपयोग करने के लिए कई मॉडल ढांचे हैं, मैं प्रतिक्रिया + एफ के लिए www.js-data.io पसंद करता हूं लक्स।

1

बैकबोन का मॉडल संग्रह उत्परिवर्तनीय है जबकि प्रतिक्रिया एक विषय, अपरिवर्तनीयता पर खड़ा है। तो, तकनीकी रूप से बैकबोन + प्रतिक्रिया का उपयोग एक विरोधी पैटर्न कर रहा है। मैंने प्रतिक्रिया + रीढ़ की हड्डी और प्रतिक्रिया + प्रवाह दोनों का उपयोग किया है। मैं निश्चित रूप से दूसरों पर प्रतिक्रिया + प्रवाह पसंद करेंगे।

0

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

यदि आप बैकबोन चुन रहे हैं, तो आप फ्लक्स मार्ग और बैकबोन तरीके का उपयोग करने के दौरान उन दोनों को तब तक जोड़ सकते हैं जब आप जानते हैं।

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