vue3+ts使用bus事件总线

1、在vue2中我是这样使用的

//创建一个vueBus.js
import Bus from 'vue';
let install = function (Vue) {
  Vue.prototype.$bus = new Bus()
}

export default { 
  install
};

//在main.js中引入
import vueBus from '@/utils/vueBus';
Vue.use(vueBus);
//可根据this.$bus._events['事件名'] 来查看是否存在该事件监听

2、在vue3中使用

//在vue3中需要使用mitt插件,直接下载即可
//创建vueBus.ts文件
const init_mitt = mitt()
const emitter:any = {
  _events:{},
  $emit:init_mitt.emit,
  $on:function(t:any,e:any){
    this._events[t] = true
    init_mitt.on(t,e)
  },
  $off:function(t:any,e:any){
    delete this._events[t]
    init_mitt.off(t,e)
  }
}
export default emitter

//在main.ts中引入使用
import emitter from '@/utils/vueBus';
app.config.globalProperties.$bus = emitter

//如果需要挂在其他的全局变量上,需要到声明文件声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Memory_of_fish

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

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

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

打赏作者

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

抵扣说明:

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

余额充值