首先,我想弄清楚为什么我不想在这种情况下使用事件总线:因为事件总线在这种情况下不起作用!
请首先查看我的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应用程序的另一部分中使用了事件总线。但是我还是很困惑,如果事件总线是双向数据绑定还是仅双向数据绑定? 我的结论是:全局事件总线只能用于在两个不相关的组件之间都存在时传递数据。
但是我的问题是:当我不知道何时将创建/呈现需要接收数据的组件时,如何在两个不相关的组件之间传递日期? >