Vue中使用事件总线Bus实现组件之间的通信

本文介绍了一种在Vue项目中实现子组件与父组件通信的方法,通过在根实例下创建一个空的Vue实例作为事件总线,子组件可以通过这个事件总线触发事件,父组件则在mounted钩子中监听这些事件,从而实现数据的更新和同步。

```javascript
new Vue({
    i18n,
    router,
    store,
    render: h => h(App),
    data: {
      // 空的实例放到根组件下,所有的子组件都能调用
      Bus: new Vue()
    }
  }).$mount('#app');

子组件删除列表数据的时候,需要通知父组件更新左侧的树结构数据

```javascript
methods:{
    handleDelete(){
        .....
        this.$root.Bus.$emit('fetchTreeData');
    }
}   

父组件在mounted钩子函数中监听

mounted() {
    this.$root.Bus.$on('fetchTreeData', () => {
       this.fetchItemTree(this.activeTreeName);//父组件处理的逻辑代码
    }); 
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值