vue非父子组件的传值操作(中间件bus的使用)

非父子组件通信有两种vuex和bus.js
因为vuex杀鸡不用牛刀,下面咱讲下使用 bus.js 实现非父子组件通讯:
假设在工作中,有三个 .vue 文件:main.vue、Hello.vue、Hi.vue。main.vue 是主页面,Hello.vue 和 Hi.vue 类似于头部导航条和底部导航栏。现在Hi.vue 需要获取 Hello.vue 传递的信息。
操作步骤如下:

1.main.vue
在这里插入图片描述
2.配置路由
在这里插入图片描述

3.准备bus.js
在这里插入图片描述
4.传递信息的页面Hello
在这里插入图片描述
5.接收信息页面Hi.vue

在这里插入图片描述
实现效果:成功传递数据.
在这里插入图片描述

总结:Bus.js 实现非父子组件通信的原理是什么?

答:通过实例化一个Vue对象( 比如bus = new Vue() )作为母线,
在组件中通过事件将参数传递出去( bus.$emit(event, [...args]) )然后在其他组件中再通过bus( 这里按照刚前面实例化Vue对象后的叫法 )来监听此事件并接受参数( bus.$on(event, callback) )PS: 共用同一个Vue的实例( new Vue() ),通过此实例进行事件传递参数,在其他组件中监听此事件并且接收参数实现通信。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值