2017-03-15 15 views
9

क्रॉस-घटक विधियों को संभालने के लिए मुझे वैश्विक ईवेंट बस का उपयोग करने के लिए उपयोग किया जाता है। उदाहरण के लिए:मुझे वूएक्स में घटनाओं को कैसे संभालना चाहिए?

var bus = new Vue(); 
... 
//Component A 
bus.$emit('DoSomethingInComponentB'); 
... 
//Component B 
bus.$on('DoSomethingInComponentB', function(){ this.doSomething() }) 

हालांकि, मैं एक बड़ी परियोजना का निर्माण कर रहा हूं, जिसके लिए वैश्विक राज्य प्रबंधन की आवश्यकता है। स्वाभाविक रूप से, मैं Vuex का उपयोग करना चाहता हूँ।

जबकि यह बस पैटर्न वूएक्स के साथ काम करता है, यह गलत लगता है। मैंने इस पैटर्न के लिए प्रतिस्थापन के रूप में अनुशंसित किया है।

क्या व्यूएक्स से घटकों में विधियों को चलाने का कोई तरीका है? मुझे इस बात से कैसे संपर्क करना चाहिए?

उत्तर

12

Vuex और event bus इस अर्थ में दो अलग-अलग चीजें हैं कि vuex आपके एप्लिकेशन की केंद्रीय स्थिति का प्रबंधन करता है जबकि ईवेंट बस का उपयोग आपके ऐप के विभिन्न घटकों के बीच संवाद करने के लिए किया जाता है।

आप एक घटक से vuex उत्परिवर्तन या क्रिया निष्पादित कर सकते हैं और vuex के कार्यों से ईवेंट भी बढ़ा सकते हैं।

docs के रूप में कहते हैं:

क्रिया म्यूटेशन के समान हैं, अंतर किया जा रहा है कि:

  • इसके बजाय राज्य परिवर्तनशील की, कार्यों म्यूटेशन के लिए प्रतिबद्ध।
  • क्रियाओं में मनमाना एसिंक्रोनस ऑपरेशंस हो सकते हैं।

तो तुम कार्रवाई से बस के माध्यम से एक घटना को बढ़ा सकते हैं और आप किसी भी घटक विधि से एक कार्रवाई कॉल कर सकते हैं।

+1

तो बस एक ही समय में बस और vuex का उपयोग करना एक ठीक पैटर्न है? दस्तावेज़ों में जो कहा गया है, उसके विपरीत है, लेकिन मैं इसके लिए इसके साथ रोल करूंगा :) धन्यवाद! –

+0

हां, मेरी राय में, आप उपयोग-मामले के आधार पर दोनों एक साथ उपयोग कर सकते हैं। एक बार वूक्स द्वारा इवेंट बस की सभी कार्यक्षमताओं को प्रतिस्थापित कर सकते हैं, लेकिन एक साधारण उपयोग के मामले (दो घटकों के बीच संचार, किसी अन्य घटक के ट्रिगर विधि इत्यादि) के लिए आप ईवेंट बस का उपयोग कर सकते हैं, जबकि जगह के लिए जहां आपको कई घटकों द्वारा एक चर की आवश्यकता होती है और सभी इसे संशोधित करते हुए, आप vuex का उपयोग कर सकते हैं। – Saurabh

+0

@ Blue_Dragon360 मैं एक ही समस्या से जूझ रहा था, फिर मैं इस पोस्ट में आया जो अनिवार्य रूप से सौरभ की तरह ही कहता है। https://forum.vuejs.org/t/bus-vs-vuex/6679 –

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