Vue兄弟组件传值 ------ bus 中央事件总线
之前了解到了父组件传值给子组件(props),子组件传值给父组件($emit),对于兄弟组件间传值是通过他们的父组件作为介质传送的,相当麻烦,现在用bus(一个空的vue对象)作为介质传值更加方便。第一步:在assert文件夹下创建一个eventBus.js文件第二步:在components文件夹下创建一个文件,用来传递数据(触发自定义函数)第三步:在components文件夹下创建一个文件,用来
·
之前了解到了父组件传值给子组件(props),子组件传值给父组件($emit),对于兄弟组件间传值是通过他们的父组件作为介质传送的,相当麻烦,现在用bus(一个空的vue对象)作为介质传值更加方便。
第一步:在assert文件夹下创建一个eventBus.js文件
第二步:在components文件夹下创建一个文件,用来传递数据(触发自定义函数)
第三步:在components文件夹下创建一个文件,用来接收数据(监听自定义函数)
第四步:在App.vue里使用这两个组件
结果:
补充:像以上引入Bus的方式,经过webpack打包后可能会出现bus局部作用域的情况,就是说引用的不算是同一个bus,最后不能正常通信
解决方法:直接将Bus注入到Vue根对象中
import Vue from 'vue'
const Bus = new Vue()
var app= new Vue({
el:'#app',
data:{
Bus
}})
ps: 在子组件中通过this.$root.Bus.$on(),this.$root.Bus.$emit()来调用
更多推荐
已为社区贡献4条内容
所有评论(0)