Vue.js 我的eventBus实现有什么问题?

Vue.js 我的eventBus实现有什么问题?,vue.js,quasar,event-bus,Vue.js,Quasar,Event Bus,我想从另一个不是父子关系的组件触发一个函数。我尝试使用eventbus,但我不确定我是否正确实现了它,因为该函数不起作用。我已经创建了一个启动文件eventBus.js并将其添加到quasar配置中,但它仍然不起作用。任何人都可以帮我检查我错误地执行了哪一部分 eventBus.js import Vue from 'vue' const eventBus = new Vue(); export default eventBus Vue.prototype.$eventBus = even

我想从另一个不是父子关系的组件触发一个函数。我尝试使用eventbus,但我不确定我是否正确实现了它,因为该函数不起作用。我已经创建了一个启动文件eventBus.js并将其添加到quasar配置中,但它仍然不起作用。任何人都可以帮我检查我错误地执行了哪一部分

eventBus.js
import Vue from 'vue'

const eventBus = new Vue();

export default eventBus

Vue.prototype.$eventBus = eventBus;
下面是我想从这个页面获得的函数,(this.getSchedule(),它在当前页面上工作得非常好)

我想触发它的页面

this.$eventBus.$emit('refreshListSchedule')

最好是在要发出或订阅事件的每个组件中手动从
eventBus.js
导入,不要依赖Vue.prototype


别忘了在销毁之前取消订阅
钩子。

Hi@IVO GELOV谢谢你的回复,是的,我昨天也尝试过这种方法,但仍然不起作用,不确定是什么原因导致它无法运行,因为我是eventBus的新手,我也尝试过quasar版本。在我的代码或eventbus实现中是否有任何错误?除非您提供一个CodeSandbox示例,否则我们看不出它为什么不起作用。感谢IVO的帮助,我仔细地修改了文档,我认为eventbus不能在组件的两个完全不同的页面上工作。因此,我采用另一种方法,使用本地存储事件侦听器触发刷新功能。如果通过
完全不同的页面
您的意思是这两个组件不同时处于活动状态,那么是的,组件A发出的事件不会到达组件B(尚未实例化)。在这种情况下,必须使用Vuex而不是事件总线。
this.$eventBus.$emit('refreshListSchedule')