UNPKG

im-ui-mobile

Version:

A Vue3.0 + Typescript instant messaging component library for Uniapp

88 lines (74 loc) 2.2 kB
/** * 事件总线类 */ declare class EventBus { private events: Map<string, Set<Function>>; private globalListeners: Set<Function>; constructor(); /** * 监听特定事件 * @param eventName 事件名称 * @param callback 回调函数 */ on<T = any>(eventName: string, callback: (data: T) => void): void; /** * 监听所有事件 * @param callback 全局回调函数 */ onAll(callback: (eventName: string, data: any) => void): void; /** * 一次性监听特定事件 * @param eventName 事件名称 * @param callback 回调函数 */ once<T = any>(eventName: string, callback: (data: T) => void): void; /** * 触发事件 * @param eventName 事件名称 * @param data 事件数据 */ emit<T = any>(eventName: string, data?: T): void; /** * 移除事件监听器 * @param eventName 事件名称 * @param callback 要移除的回调函数(不传则移除所有监听器) */ off(eventName: string, callback?: Function): void; /** * 移除所有事件监听器 */ offAll(): void; /** * 移除全局监听器 * @param callback 要移除的全局回调函数(不传则移除所有全局监听器) */ offAllListener(callback?: Function): void; /** * 获取事件监听器数量 * @param eventName 事件名称(不传则返回所有事件的总数) * @returns 监听器数量 */ getEventCount(eventName?: string): number; /** * 检查是否存在特定事件的监听器 * @param eventName 事件名称 * @returns 是否存在监听器 */ hasEvent(eventName: string): boolean; /** * 获取所有已注册的事件名称 * @returns 事件名称数组 */ getEventNames(): string[]; /** * 清空所有事件(包括全局监听器) */ clear(): void; /** * 销毁事件总线实例 */ destroy(): void; } declare const eventBus: EventBus; export { eventBus, EventBus }; export default eventBus;