1
A
回答
1
您可以使用$on
-方法來實現CommunicationHub
- 普通mixin,對於非父母< - >子通信(就像你的情況一樣)。
例如:你有兩個Vue根應用程序:RootAppA
和RootAppB
。它們之間的溝通,您可以創建CommunicationHub
混入與下面的代碼:
let CommunicationHub = new Vue();
Vue.mixin({
data: function() {
return {
communicationHub: CommunicationHub
}
}
});
現在,您可以通過從RootAppA
與$emit
- 方法發射自定義事件發送數據,並通過在RootAppB
此事件上訂閱得到這個數據,與方法$on
:
let RootAppA = {
methods: {
sendData(){
this.communicationHub.$emit('customEvent', {foo: 'bar', baz: 1, comment: 'custom payload object'});
}
}
}
let RootAppB = {
created(){
this.communicationHub.$on('customEvent', (payload) => {
console.log(payload); //{foo: 'bar', baz: 1, comment: 'custom payload object'}
});
}
}
順便說一句,請提及CommunicationHub模式不是更大的應用,因此靈活的解決方案。因此,如果您的應用程序將長大,也許您會想要使用Vuex -library(請參閱我的示例previous so-answer)
相關問題
- 1. 使用VUE組件
- 2. vue組件和vue實例之間的通信
- 3. Vue多用途組件?
- 4. Vue 2.0實例沒有聽到vue-router組件發出的事件
- 5. VUE JS組件不
- 6. 添加VUE組件
- 7. Vue實例內的Vue實例
- 8. Vue組件切換
- 9. 如何在組件中使用Vue實例數據?
- 10. 刀片中的Vue組件
- 11. Vue組件分隔符
- 12. 如何從VUE組件
- 13. Vue JS 0.12動態組件
- 14. 如何命名vue組件
- 15. VUE組件忽略CSS
- 16. 如何在VUE組件
- 17. 渲染多個.vue組件
- 18. 訪問Vue組件數據
- 19. 如何註冊Vue組件?
- 20. Vue材料加入組件
- 21. 如何在vue cli項目的index.html中使用Navbar vue組件?
- 22. Vue Js:在vue-loader中使用組件的指令
- 23. d3作爲Vue組件
- 24. 訪問一個VUE組件
- 25. Laravel Vue組件未顯示
- 26. 注入CSS到Vue組件?
- 27. 在Moqui屏幕中使用Vue組件
- 28. Vue JS - 在組件中使用v-if
- 29. 如何使用vue-router組件嵌套?
- 30. vue組件外的調用函數