vue3.0+ts中使用事件总线 eventBus

本文介绍如何在Vue3结合TypeScript的环境中搭建事件总线(eventBus)。通过使用mitt插件实现组件间通信,并提供具体实现步骤及代码示例。针对使用过程中可能遇到的非逻辑错误给出解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue3.0+ts中使用事件总线 eventBus

前言

最近需要用到不同组件之间通信,所以来看看vue3.0+ts下怎么使用事件总线

vue2.0使用

//创建一个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['事件名'] 来查看是否存在该事件监听

vue3.0使用

//在vue3中需要使用mitt插件,直接下载即可
yarn add 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
 
//如果需要挂在其他的全局变量上,需要到声明文件声明

遇到的问题

非逻辑问题的各种报错的万能解决办法

// 清理缓存
npm cache clean --force
// 安装 rimraf 
npm install rimraf -g
// 执行递归删除node_modules文件夹
rimraf node_modules
// 删除包版本锁
rimraf package-lock.json
// 安装npm
npm install

npm install yarn
//使用
yarn install

参考文档

管理员身份运行vscode
vue2和vue3 使用$bus事件总线的区别
在vue3中简单实现事件监听与分发(EventBus)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值