对于经常使用vue2的人来说
E
v
e
n
t
B
u
s
相
比
会
很
熟
悉
,
但
是
在
v
u
e
3
中
EventBus相比会很熟悉,但是在vue3中
EventBus相比会很熟悉,但是在vue3中EventBus(事件总线)就失效了。
因为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
然后就可正常使用