Событие Vue от родителя (App.vue) к другому компоненту - PullRequest
0 голосов
/ 23 мая 2019

Я хотел бы отправить событие из App.vue, которое является основным компонентом для другого компонента. 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

1 Ответ

0 голосов
/ 23 мая 2019

Вы говорите, что метод 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}]`)
});
...