在 vue3
中,mitt 是一个推荐的 eventBus
库。这是一个 uni_modules
的完美迁移版本。
👉 mitt
import mitt from "@/uni_modules/tob-mitt/index.js"
const bus = mitt()
// 注册两个指定类型的事件函数
bus.on('foo', () => console.log('我是foo1'))
bus.on('foo', () => console.log('我是foo2'))
// 触发该类型的事件函数
bus.emit('foo') // 将打印 我是foo1,我是foo2
// 注册一个带形参的事件函数
bus.on('bar', (msg) => console.log(msg))
// 触发事件函数的同时设置实参
bus.emit('bar', '你好') // 将打印 你好
bus.off('bar') // 卸载所有 bar 事件函数
const bar = () => console.log('我好')
bus.on('bar', bar)
bus.off('bar', bar) // 单独卸载该事件函数
bus.emit('bar') // 因为被卸载了,所以什么都不会触发
// 注册所有类型的事件函数
bus.on('*', () => {
console.log("不论什么时候都会触发")
})
// 触发 * 类型的事件函数
bus.emit() // 打印 不论什么时候都会触发
bus.emit('foo') // 打印 我是foo1,我是foo2 不论什么时候都会触发
bus.all // 保存事件函数的 map
欢迎关注 帝莎编程
Made with markthree
Published under MIT License.