javascript - 有什么方法可以在不使用事件总线的情况下在不相关的 Vue 组件之间传递数据?
问题描述
首先我想清楚为什么我不想在这种情况下使用事件总线:因为事件总线不适用于这种情况!
请先看我的 Vue.js 项目的简化结构:
App.vue
|---Map.vue
|---Info.vue
| |---layerInfo.vue
|
|---WMS.vue
|---WFS.vue
|---Basic.vue
该图只显示了哪个组件创建了哪个子组件,但它们并非都是在 Vue 应用程序启动时创建的。layerInfo.vue 仅在满足某些条件时才会创建(您只有在使用单击按钮后才能进行图像,才会渲染/创建 layerInfo.vue)
我做了什么:
在 Map.vue 组件中,我创建了一个包含有用信息的对象映射,并将该映射发送到全局事件总线。
问题是,此时 layerinfo.vue 不存在。所以我不能听$emit 事件使用$on。(即使我试过了,我也没有得到地图)
还有一个关于事件总线的问题:我在 vue 应用程序的其他部分使用了事件总线。但是我仍然很困惑,如果事件总线进行双向数据绑定或仅单向?我的结论:全局事件总线只能用于在两个不相关的组件之间传递数据,当它们都存在时。
但我的问题是:当我不知道何时创建/呈现需要接收数据的组件时,如何在两个不相关的组件之间传递日期?
解决方案
推荐阅读
- node.js - 在企业 Nexus 中发布库
- php - Laravel 5.7 | 将第一个函数中用于构建视图的数据/变量传递给第二个函数以生成 dompdf 文件
- python - 在一个 pyhton 模块中定义的命名元组无法被另一个 python 模块识别
- c++ - 在 C++ 中使用特定密码设置 openssl 客户端
- ios - 在苹果购买历史中,应用内购买待定状态更改为成功需要多长时间
- java - 未找到 Java FutureOrPresent 验证实现
- python - 如何从 netcdf 文件中提取投影在不规则网格上的变量的像素值?
- spring-security - Spring Security 只允许访问自己的资源
- amazon-web-services - 我可以在 AWS Fargate 中执行日志运行控制台应用程序吗
- mysql - 将 TSV 文件从存储桶移动到 Cloud MySql