2021-10-21 vue笔记-组件化开发(四) 组建通信:非父子通信-事件总线,在vue项目中使用eventbus的例子

1.事件总线(eventBus)
定义

vue实例赋值给一个变量,就是中央事件总线

var bus=new Vue();
用途

实现跨组件传输

原理

将eventBus作为连接组件之间的桥梁,所有组件共用相同的事件中心,
向事件中心发送或接收事件,并可以通知其他组件;

2.eventBus使用步骤

1、初始化,创建一个事件总线并导出,以便其他模块可以使用并监听它;

// eventBus.js
import Vue from 'vue'
//通过一个空的Vue实例作为中央事件总线(事件中心)
export const EventBus = new Vue() 

2、导入eventBus,使用$emit发送数据;
3、导入$on,使用$on接收数据;
4、如果想移除事件,可以先导入eventBus,通过$off移除;(eventBus.$off ( 'add', {} ))

3.在HTML网页中使用事件总线:模拟公众号和用户之间信息的发送和接收
代码
<div id="app">
    <weixinauthor></weixinauthor>
    <weixinuser></weixinuser>
</div>
<script>
  // 1.初始化:创建一个事件总线
    var bus = new Vue;
    Vue.component('weixinauthor', {
     
        template: `<div style="background:blue">
      我是微信公众号:
    <input type="text" ref="mytext">
    <button @click="handleClick">发布</button>
</div>`,
        methods: {
     
            handleClick() {
     
              // 2.导入eventBus,使用$emit发送数据:weixinmessage要保持一致
                bus.$emit("weixinmessage", this
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端OnTheRun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值