vue3 $EventBus自定义发布订阅模式

在Vue3中,由于$on和$emit的移除,传统的EventBus不再适用。为实现发布订阅模式,文章推荐使用mitt库来创建自定义的EventBus。首先安装mitt,接着在myBus.js中封装mitt,然后在main.js中引入并将其挂载到全局,使得Vue实例可以使用$EventBus进行事件通信。

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

对于经常使用vue2的人来说 E v e n t B u s 相 比 会 很 熟 悉 , 但 是 在 v u e 3 中 EventBus相比会很熟悉,但是在vue3中 EventBusvue3EventBus(事件总线)就失效了。
因为Vue3不再提供$on与emit函数,Vue实例不再实现事件接口。官方推荐引入外部工具实现
在此推荐使用**mitt* 安装mitt

//npm
npm install mit -s
//yarn
yarn add mitt

然后新建myBus.js文件 对mitt进行封装

import mitt from 'mitt'
 
const bus = {}
const emitter = mitt()
 
bus.$on = emitter.on
bus.$off = emitter.off
bus.$emit = emitter.emit
 
export default bus

然后在main.js内引用该文件使之变为全局事件
import Bus from ‘./utils/myBus’
import导入后
app.config.globalProperties.$EventBus = Bus
然后就可正常使用
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值