feat: 初始化版本!
This commit is contained in:
28
src/plugins/bus.ts
Normal file
28
src/plugins/bus.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
const event: { [key: string]: Function } = {}
|
||||
/** 事件句柄 */
|
||||
export default {
|
||||
/** 绑定一个事件 */
|
||||
$on(eventName: string, eventFun: Function) {
|
||||
if (event.hasOwnProperty(eventName)) {
|
||||
throw new Error(`存在事件 => ${eventName}`)
|
||||
} else {
|
||||
event[eventName] = eventFun
|
||||
}
|
||||
},
|
||||
/** 解绑一个事件 */
|
||||
$off(eventName: keyof typeof event) {
|
||||
if (event.hasOwnProperty(eventName)) {
|
||||
delete event[eventName]
|
||||
} else {
|
||||
throw new Error(`不存在事件 => ${eventName}`)
|
||||
}
|
||||
},
|
||||
/** 触发一个事件 */
|
||||
$emit<T>(eventName: keyof typeof event, ...args: any):T {
|
||||
if (event.hasOwnProperty(eventName)) {
|
||||
return event[eventName](...args)
|
||||
} else {
|
||||
throw new Error(`不存在事件 => ${eventName}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user