Сначала я хочу пояснить, почему я не хочу использовать шину событий в этой ситуации: Поскольку шина событий не будет работать в этой ситуации!
Пожалуйста, сначала ознакомьтесь с упрощенной структурой моего проекта Vue.js:
App.vue
|---Map.vue
|---Info.vue
| |---layerInfo.vue
|
|---WMS.vue
|---WFS.vue
|---Basic.vue
Диаграмма показывает только, какой компонент создает какой дочерний компонент, но не все они созданы в начале приложения Vue. LayerInfo.vue будет создан только тогда, когда будут выполнены некоторые условия (Вы можете создать изображение только после нажатия кнопки, layerInfo.vue будет отображен / создан)
Что я сделал:
В компоненте Map.vue я создал карту объектов, которая содержит полезную информацию, и отправляю карту в шину Global Event Bus.
Проблема в том, что в данный момент layerinfo.vue не существует. Так что я не могу слушать событие $ emit use $ on. (Даже я пытался, я не получил карту)
И еще один вопрос о Event Bus: я использовал Event Bus в другой своей части приложения vue. Но я все еще в замешательстве, если шина событий выполняет двустороннюю привязку данных или только одностороннюю?
Мой вывод: глобальная шина событий может использоваться только для передачи данных между двумя несвязанными компонентами, когда они оба существуют.
Но мой вопрос: как я могу затем передать дату между двумя не связанными компонентами, когда я не знаю, когда будет создан / обработан тот, который должен получить данные?