javascript - 从父级(App.vue)到另一个组件的 Vue 事件
问题描述
我想发出一个事件,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
解决方案
你说 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}]`)
});
推荐阅读
- python - Nginx 找不到我使用路径指定的文件
- logging - log4j2 - 每日 RollingFile 附加程序的 DefaultRolloverStrategy,不考虑最大值
- java - 如何重新加载从线程加载数据的recycleview
- r - 如何使用因子和向量构建函数
- django - 序列化器中的嵌套序列化过滤器输出
- qt - 如何恢复 QSS 属性的默认系统值?
- jquery - 对 spring-mvc 控制器的 AJAX 发布请求中的未知错误
- windows - Windows 10 Home 和 WSL 上的 Docker 错误
- amazon-web-services - 如何配置 AWS 网络负载均衡器以实现端到端 HTTPS 加密,同时保持会话亲和性?
- excel - Excel(或Calc)中的字符串模板?