从父级(App.vue)到另一个组件的Vue事件

时间:2019-05-23 05:40:26

标签: javascript vue.js vue-events

我想从EventBus.$emit发出一个事件,该事件是另一个组件的主要组件。 来自App.vue的EventBus.$on上的@custom-event=""关于子组件/另一个组件不起作用。 由于这些之间没有直接的子关系,因此我也不能使用App.vue

如何将事件从-src -pages -main-page -MainPage.vue $on -event -constant -store -router App.vue --> $emit main.js 引发到另一个组件?

这就是我要做的。它正在处理所有其他组件。这是我组件的文件夹结构

node-ip

1 个答案:

答案 0 :(得分:0)

您说EventBus方法不起作用,但应该可以,所以我认为您做错了。做这样的事情:

创建eventBus.js

import Vue from 'vue';
export const EventBus = new Vue();

在您的任何单个文件组件中,将其导入:

import { EventBus } from '/src/path/to/eventBus.js';

在组件中触发事件:

EventBus.$emit('some-event-raised', { someData: "bob" })

在任何其他组件中,再次执行导入,然后侦听:

EventBus.$on('some-event-raised', obj => {
  console.log(`some-event-raised triggered [${obj.someData}]`)
});