फ्लक्स पैटर्न को समझना


12

मैं वास्तव में फ्लक्स पैटर्न का अध्ययन कर रहा हूं और कुछ ऐसा है जिसे मैं दुकानों के संबंध में नहीं समझ सकता हूं ।

वे वास्तव में क्या हैं?

मैंने कई लेख पढ़े हैं, और ऐसा लगता है कि यह डोमेन की चिंता करता है।

क्या इसका मतलब यह है कि यह "एब्स" कॉल या बैकएंड कॉल से संबंधित "अमूर्त" हिस्सा है?

यह मेरे लिए बहुत स्पष्ट नहीं है।

संपादित करें: क्या यह कोणीय कारखाने के समान हो सकता है? दूरस्थ डेटा प्राप्त करना, एक व्यवसाय कार्य करना या कुछ ऐप स्टेट्स को स्टोर करना (वर्तमान उपयोगकर्ता उदाहरण के लिए जुड़ा हुआ है)?


1
आप जिस बारे में बात कर रहे हैं, उसके लिए एक लिंक उपयोगी होगा। क्या आपका मतलब यह है "फ्लक्स पैटर्न"? fluxxor.com/what-is-flux.html
डगएम


फ्लक्स और अधिक कुछ भी नहीं है कि एक बाधा के साथ प्रकाशित / सदस्यता पैटर्न जो सभी डेटा पहले डिस्पैचर के माध्यम से जाते हैं। यह गारंटी देता है कि डेटा पीछे नहीं जाता (और भ्रम का कारण बनता है)। "स्टोर", "एक्शन" आदि जैसी चीजें सिस्टम के अवयव कहने का एक और तरीका है, और डेटा जो चारों ओर से गुजरता है।
कीवीकोम्बजैड

जवाबों:


24

ठीक है मैं आपको स्टेप बाय स्टेप समझाता हूं

1 फ्लक्स क्या है?

  • एक तरीका
  • केंद्रीकृत प्रेषण
  • अप्रत्यक्ष डेटा प्रवाह
  • सामग्री सूचीबद्ध करें

वे इसे एक कारण के लिए फ्लक्स भी कहते हैं।

फ्लक्स कार्यान्वयन

  • फेसबुक का फ्लक्स
  • ऑल्ट
  • भाटा
  • घबराना
  • NuclearJS
  • Fluxible

यहाँ छवि विवरण दर्ज करें

फ्लक्स के साथ एक चैट

प्रतिक्रिया : अरे एक्शन, किसी ने इस "सेव कोर्स" बटन पर क्लिक किया।

क्रिया : धन्यवाद प्रतिक्रिया! मैंने डिस्पैचर के साथ एक एक्शन क्रिएटर को पंजीकृत किया है, इसलिए डिस्पैचर को उन सभी स्टोर्स को सूचित करने का ध्यान रखना चाहिए जो देखभाल करते हैं।

डिस्पैचर : मुझे यह देखने दो कि कौन कोर्स को बचाने के बारे में परवाह करता है। आह! ऐसा लगता है कि स्टोर ने मेरे साथ कॉलबैक पंजीकृत किया है, इसलिए मैं उसे बता दूंगा।

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

प्रतिक्रिया : Ooo! स्टोर से चमकदार नया डेटा! मैं इसे दर्शाने के लिए UI अपडेट करूँगा!


फ्लक्स एपीआई


रजिस्टर (फ़ंक्शन कॉलबैक) - "अरे डिस्पैचर, कार्रवाई होने पर मुझे चलाएं। -दुकान"

अपंजीकृत (स्ट्रिंग आईडी) - "अरे डिस्पैचर, इस कार्रवाई के बारे में चिंता करना बंद करो। -दुकान"

WaitFor (सरणी आईडी) - “पहले इस स्टोर को अपडेट करें। -दुकान"

प्रेषण (ऑब्जेक्ट पेलोड) - “अरे डिस्पैचर, इस कार्रवाई के बारे में दुकानों को बताएं। कार्रवाई के "

isDispatching () - "मैं अभी कॉलबैक भेजने में व्यस्त हूं।"

इसलिए हमारे मन में सवाल उठ रहा है

तो फ्लक्स एक प्रकाशन-सदस्यता मॉडल है?

काफी नहीं।

दो तरह से मुश्किल:

1. सभी पेलोड को सभी पंजीकृत कॉलबैक में भेज दिया जाता है।

2. कॉलबैक अन्य कॉलबैक के लिए इंतजार कर सकता है

सारांश

फ़्लक्स यूनिडायरेक्शनल डेटा फ़्लो के लिए एक पैटर्न है, घटनाओं को अंजाम देता है डिस्पैचर एक केंद्रीय हब है जो कॉलबैक रखता है स्टोर ऐप ऐप राज्य को पकड़ते हैं कई कार्यान्वयन


मेरी पहली समस्या यह है कि राज्य दूरस्थ एपीआई संस्थाओं के अलग-अलग डेटा रखने के लिए आवेदन की अनुमति देता है: - /
mfrachet

राज्य द्वारा आपको क्या मतलब है? जहाँ भी उत्सर्जन परिवर्तन कहा जाता है, वह रिएक्ट व्यू कहलाएगा और फिर से राज्य परिवर्तन विधि
कहलाएगा

यह स्वीकार करते हुए कि मैं फ्लक्स के साथ एक एप्लिकेशन बनाता हूं। मैं एक एपीआई के साथ काम कर रहा हूं और फिर मैं अपने स्टोर के अंदर डेटा सहेजता हूं। क्या होगा यदि उपयोगकर्ता दूरस्थ डेटा को संशोधित करते हैं? मेरे पास क्लाइंट और सर्वर दोनों के बीच अंतर होगा
mfrachet

अब मैं कहां मिल सकता हूं। अगर सभी डिस्पैचर और स्टोर करने जा रहे हैं तो देखने के लिए आगे है, फिर सीधे एक्शन अपडेट को क्यों नहीं देख सकते। क्यों बिचौलिए हैं
मुहम्मद उमर 15

@ मुहम्मदउमर: डिस्पैचर आवेदन के लिए एक है और स्टोर आवेदन में घटक पर आधारित है ताकि अतिरेक को दूर करने के लिए बिचौलियों को पेश किया गया
धवल पटेल

1

एक साधारण उदाहरण ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ) को देखते हुए, "स्टोर अनुप्रयोग के भीतर एक विशेष डोमेन के लिए एप्लिकेशन स्थिति का प्रबंधन करते हैं।" अर्थात्, वे होते हैं। एप्लिकेशन के एक पहलू की स्थिति और इसे बदलने के लिए सभी कोड के बारे में डेटा। जब भी डिस्पैचर से कोई नया अपडेट आता है, सभी स्टोर उसे देखते हैं, तो वे निर्णय लेते हैं कि प्रतिक्रिया में अपने डेटा को कैसे अपडेट किया जाए, और फिर वे उस दृश्य को सूचित करते हैं कि डेटा बदल गया है। उदाहरणों में, स्टोर में "अनदेखी धागे सूची" जैसी चीजें हैं (जहां डिस्पैचर उन्हें सूचित करता है कि एक नया संदेश आ गया है या एक पुराना पढ़ा गया है, और दृश्य उपयोगकर्ता को संदेश थ्रेड प्रदर्शित करता है) और "वर्तमान प्लेबैक समय" राज्य। "

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


0

स्टोर कोड के क्षेत्र हैं जो एप्लिकेशन स्टेट और जटिल लॉजिक को स्टोर करते हैं। उनके लिए एक कारण यह है कि एकाधिक दृश्य एक ही डेटा का उपयोग करेंगे, लेकिन उन्हें एक अलग तरीके से प्रदर्शित करेंगे, या किसी विशेष डोमेन के लिए कुछ डेटा को प्रदर्शित नहीं करेंगे। उदाहरण के लिए, एक उपयोगकर्ता लॉग इन करता है और आप अपना पहला नाम, अंतिम नाम, ईमेल, फोटो, शहर, पता संख्या, फोन नंबर आदि प्राप्त करते हैं। यह जानकारी अलग-अलग विचारों पर प्रदर्शित की जाती है। विचारों के पार डेटा को डुप्लिकेट करने के बजाय हम उपयोगकर्ता के लिए डेटा संग्रहीत करने वाले UserStore नामक एक स्टोर का उपयोग कर सकते हैं। जब भी तर्क या डेटा संग्रहीत किया जाना चाहिए, तो "परिवर्तन करने के लिए एक स्थान" देकर इस प्रणाली को सरल बनाएं। एक स्टोर का उपयोग करने के लिए बहुत सारे अन्य कारण हैं, हालांकि मुझे लगता है कि सबसे स्पष्ट है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.