UNPKG

dphelper

Version:

dphelper devtools for developers

109 lines (80 loc) 2.35 kB
# dispatch Custom event dispatch and listener management utilities. ## Functions | Function | Description | Example | |----------|-------------|---------| | `set` | Dispatch a custom event | `dphelper.dispatch.set('myEvent', { detail: data })` | | `listen` | Listen for custom events | `dphelper.dispatch.listen('myEvent', callback)` | | `remove` | Remove event listener | `dphelper.dispatch.remove('myEvent')` | ## Description Custom event management: - **Dispatch** - Fire custom events with data - **Listen** - Register event handlers - **Manage** - Remove listeners ## Usage Examples ### Dispatching Events ```javascript // Simple event dphelper.dispatch.set('user:login'); // With data dphelper.dispatch.set('user:login', { detail: { userId: 123, timestamp: Date.now() } }); // Application events dphelper.dispatch.set('app:loaded'); dphelper.dispatch.set('data:updated', { detail: { source: 'api' } }); ``` ### Listening for Events ```javascript // Listen for event dphelper.dispatch.listen('user:login', (e) => { console.log('User logged in:', e.detail); }); // Multiple handlers dphelper.dispatch.listen('data:updated', (e) => { console.log('Data updated:', e.detail); }); // App lifecycle dphelper.dispatch.listen('app:loaded', () => { console.log('App ready!'); initializeApp(); }); ``` ### Removing Listeners ```javascript // Remove specific listener dphelper.dispatch.remove('user:login'); // Clean up on component unmount function cleanup() { dphelper.dispatch.remove('myEvent'); } ``` ### Complete Event System ```javascript class EventBus { constructor() { this.listeners = {}; } on(event, callback) { dphelper.dispatch.listen(event, callback); } emit(event, data) { dphelper.dispatch.set(event, { detail: data }); } off(event) { dphelper.dispatch.remove(event); } } // Usage const events = new EventBus(); events.on('user:action', (e) => console.log('Action:', e.detail)); events.emit('user:action', { type: 'click', target: 'button' }); ``` ## Details - **Author:** Dario Passariello - **Version:** 0.0.2 - **Creation Date:** 20231231 - **Last Modified:** 20240612 - **Environment:** Client-side only (browser) --- *Automatically generated document*