blog

EventHub-任意のコンポーネント通信

上記のコードでは、Publish-Subscribe パターンを使って DOM 要素のイベントを購読し、ユーザが対応するアクションを実行した時にイベントを発行しています。イベントの購読を手動で解除する...

Jul 12, 2020 · 1 min. read
シェア

EventHub

EventHubは複数のモジュール間で情報を伝達するために使用され、基本的にパブリッシュ・サブスクライブモデルに基づいており、これはパブリッシュ・サブスクライブモデルの一例として理解することができます。

DOM2 レベルのイベントバインディング:

const b = document.getElementById('app'); b.addEventListener('click', function () { }); b.addEventListener('click', function () { }); ele.removeEventListener('click', handler);

上記のコードでは、Publish-Subscribe パターンを使用して DOM 要素のイベントを購読し、ユーザーが対応するアクションを実行したときに発行しています。もちろん、手動でイベントの購読を解除することも可能です。

EventHub

class EventHub { event = {} on = (eventName, fn) => { if (this.event[eventName] === undefined) { this.event[eventName] = [] } this.event[eventName].push(fn) } emit = (eventName) => { if (this.event[eventName] === undefined) { this.event[eventName] = [] } this.event[eventName].forEach(fn => { fn() }) } off = (eventName, fn) => { if (this.event[eventName] === undefined) { this.event[eventName] = [] } const index = this.event[eventName].indexOf(fn) if( index !== -1) { this.event[eventName].splice(index, 1) } } }
Read next

デザインパターンの注意点_設計原則

1.単一責任 2.インターフェースの分離 3.依存関係の逆転 4.リヒターの置換 5.開閉の原則 6.ディミトリの法則 7.合成再利用の原則

Jul 12, 2020 · 3 min read

フック 問題記録

Jul 11, 2020 · 1 min read

nginxの設定 wss

Jul 10, 2020 · 2 min read

島の数

Jul 10, 2020 · 2 min read

Javaアノテーションの詳細

Jul 8, 2020 · 2 min read