有时候项目里面会遇到子组件与子组件通信。譬如以下情况:
点击左侧树菜单,获取id。然后给右边的图表。异步查询数据去渲染。
这时候假如不想用vuex。可以用eventbus让两个子组件传值。
首先,在main.js里面全局注册一个eventbus的方法。
Vue.prototype.$EventBus = new Vue();
然后在左边的子组件注册一个自定义事件,
this.$EventBus.$emit(自定义事件名, 数据);
this.$EventBus.$emit("sjd", {num: 4});
接着在右边的子组件监听接收这个值
this.$EventBus.$on("sjd", (val) => {
console.log(val)
});
控制台打印是这样:
这样就完成了子组件与子组件之间的传值了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。