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 Js:在vue-loader中使用组件的指令
- 20. d3作为Vue组件
- 21. 注入CSS到Vue组件?
- 22. Laravel Vue组件未显示
- 23. vue组件外的调用函数
- 24. 如何在vue组件中使用setInterval
- 25. 如何使用vue-router组件嵌套?
- 26. 重用Vue组件,删除数据
- 27. 在Moqui屏幕中使用Vue组件
- 28. vue调用方法其他组件
- 29. 如何区分Vue Devtools中的组件实例
- 30. 如何查看组件内的Vue实例属性?