document custom event ou dispatchHandler ?
Bonjour,
je me suis fais une classe avec 2 methodes : .on(...) et .dispatch(...) afin de simuler un event sur mon object
Code:
1 2
| cons toto = new MaClass();
toto.on('dataLoaded', () => { console.log('ok'); }); |
(et un moment dans ma class, j'ai un this.dispatch('dataLoaded') )
Code:
1 2 3 4 5 6 7 8 9 10 11
| on(key, callback, options) {
this._dispatchHandlers[key] = { callback, options };
}
dispatch(key, datas={}) {
if(this._dispatchHandlers[key]) {
this._dispatchHandlers[key].callback(datas);
if(this._dispatchHandlers[key].options && this._dispatchHandlers[key].options.once === true) {
delete this._dispatchHandlers[key];
}
}
} |
avant, je passais par des custom events du document
Code:
1 2 3 4 5 6
| on(key, callback, options) {
document.addEventListener(key, callback, options);
}
_dispatch(key, datas= {}) {
document.dispatchEvent(new CustomEvent(key, { detail: data }));
} |
est-il preferable de passer par une methode en particulier ? (pourquoi ?)