Vue.js中组件间的数据传输与通信

一:兄弟组件间的数据通信

组件使用过程中我们发现,Loading、Tips组件的显隐设置,Topbar组件的高亮切换等操作,不是由这些组件自己控制的,是要在同级或者说兄弟组件中控制的。

Loading这些组件需要别的组件向它们传输数据,然后Loading内部根据这些数据实现功能。这样Loading等就需要全局性的暴露或者说监听一个方法,其兄弟组件就可以向该全局方法传递参数,实现通讯。

第一步:声明一个各组件都能操作到的公共实例

在main.js中声明一个bus实例:Vue.prototype.bus = new Vue

第二步:被操作组件用$on监听一个方法

data(){
    return{
        Loading:false
    }
},
created(){
    var That = this;
    this.bus.$on('Loading',function (data) {
        That.Loading = !!data;
    })
}

第三步:兄弟组件通过$emit传递数据

this.bus.$emit('Loading',true);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun_qqq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值