1.0.3 • Published 5 months ago
xl_events v1.0.3
xl_events
基础的事件模型
方法
- on(eventName: string, listener: Listener): void
- once(eventName: string, listener: Listener): void
- emit(eventName: string, ...args: unknown[]) : void
- off(eventName: string): void
属性
- listeners: Listeners
demo
// 全局 events
import { events } from 'xl_events';
events.on('click', ()=>console.log('click'));
events.on('click.top', (params)=>console.log('click.top'+params));
events.emit('click','test'); // console.log: click and click.toptest
events.emit('click.top','test'); // console.log: click.toptest
import Events from 'xl_events';
// 创建一个实例
const events = new Events()
events.on('click', ()=>console.log('click'));
// 替换前面的事件
events.on('click', ()=>console.log('click2'));
events.emit('click','test'); // console.log: click2 and click.toptest
类型
export interface Listener<D = unknown> {
(...params: D[]): unknown;
}
export interface Handle {
handle: Listener;
once: boolean;
eventName: string;
}
export type Listeners = Record<string, Record<string, Handle>>;