ruoyi-geek-App/src/plugins/bus.ts

29 lines
787 B
TypeScript
Raw Normal View History

2023-09-02 15:14:02 +00:00
const event: { [key: string]: Function } = {}
/** 事件句柄 */
export default {
/** 绑定一个事件 */
$on(eventName: string, eventFun: Function) {
2023-09-02 15:14:48 +00:00
if (event.hasOwnProperty(eventName)) {
2023-09-02 15:14:02 +00:00
throw new Error(`存在事件 => ${eventName}`)
} else {
event[eventName] = eventFun
}
},
/** 解绑一个事件 */
$off(eventName: keyof typeof event) {
2023-09-02 15:14:48 +00:00
if (event.hasOwnProperty(eventName)) {
2023-09-02 15:14:02 +00:00
delete event[eventName]
} else {
throw new Error(`不存在事件 => ${eventName}`)
}
},
/** 触发一个事件 */
$emit<T>(eventName: keyof typeof event, ...args: any):T {
2023-09-02 15:14:48 +00:00
if (event.hasOwnProperty(eventName)) {
2023-09-02 15:14:02 +00:00
return event[eventName](...args)
} else {
throw new Error(`不存在事件 => ${eventName}`)
}
}
}