Event Handler
Der Event Handler stellt ein zentrales Kommunikationssystem innerhalb der Kryzo Engine bereit. Er ermöglicht eine lose gekoppelte Architektur, in der Module, Komponenten und Anwendungen über benutzerdefinierte Events miteinander interagieren können, ohne direkt voneinander abhängig zu sein. Anstatt direkte Funktionsaufrufe zwischen einzelnen Teilen der Anwendung zu verwenden, basiert die Kommunikation auf einem Event-basierten Ansatz.
Dadurch können Prozesse flexibel ausgelöst, verarbeitet und wieder entfernt werden, ohne die Struktur der Anwendung zu beeinflussen. Der Event Handler eignet sich insbesondere für modulare Systeme, in denen mehrere unabhängige Komponenten auf Zustandsänderungen oder Aktionen reagieren sollen. Damit steht die vollständige Event-API zur Verfügung und kann für das Registrieren, Auslösen und Entfernen von Events genutzt werden.
Initialisierung
document.addEventListener('kryzo:ready', ({ detail: { EVENT } }) => {
/* Ab hier stellen alle EVENT Funktionen zur Verfügung */
});
Event setzen
/*
Mit EVENT.on() wird ein Listener für ein bestimmtes Event registriert.
Zur Vermeidung von Kollisionen empfiehlt sich die Verwendung von Namespaces.
Empfohlenes Format: "bereich:aktion"
event: Eindeutiger Event-Name
callback: Funktion, die beim Auslösen des Events ausgeführt wird
params: Übergebene Daten des Events
*/
EVENT.on('app:dosomething', (params) => {
console.log("Do something");
console.log(params);
});
Event auslösen
/*
Mit EVENT.emit() wird ein Event ausgelöst.
Optional können beliebige Daten übergeben werden.
Die übergebenen Daten stehen im Listener als params zur Verfügung.
*/
EVENT.emit('app:dosomething', {
mode: 'anywhere'
});
Event entfernen
/*
Mit EVENT.off() werden alle Listener eines Events entfernt.
Nach dem Entfernen reagieren registrierte Listener nicht mehr auf dieses Event.
*/
EVENT.off('app:dosomething');