是否可以在不使用事件总线的情况下在不相关的Vue组件之间传递数据?

时间:2018-11-14 19:00:43

标签: javascript vue.js vuejs2 vue-component

首先,我想弄清楚为什么我不想在这种情况下使用事件总线:因为事件总线在这种情况下不起作用!

请首先查看我的Vue.js项目的简化结构:

App.vue
  |---Map.vue
  |---Info.vue
  |     |---layerInfo.vue
  |
  |---WMS.vue
  |---WFS.vue
  |---Basic.vue

该图仅显示了哪个组件创建了哪个子组件,但并非在Vue应用程序开始时都创建了所有子组件。仅在满足某些条件时才创建layerInfo.vue(您只能在使用后单击按钮才能成像,layerInfo.vue将被渲染/创建)

我做了什么:

在Map.vue组件中,我创建了一个Object映射,其中包含有用的信息,然后将该映射发送到Global Event Bus。

问题是,此刻,layerinfo.vue不存在。因此,我无法使用$ on来监听$ emit事件。 (即使我尝试过,也没有得到地图)


关于事件总线的另一个问题:我在vue应用程序的另一部分中使用了事件总线。但是我还是很困惑,如果事件总线是双向数据绑定还是仅双向数据绑定? 我的结论是:全局事件总线只能用于在两个不相关的组件之间都存在时传递数据。

但是我的问题是:当我不知道何时将创建/呈现需要接收数据的组件时,如何在两个不相关的组件之间传递日期? >

0 个答案:

没有答案