DOM 全体での通信

同じ DOM ツリー内に存在しないコンポーネント間で通信を行うには、2 つの方法があります。Lightning Message Service (lightning/messageService)、または公開/登録パターンに従うシングルトンライブラリを使用します。

同じ Lightning ページや異なるページにあるコンポーネント間で通信するには、Lightning Message Service を使用して Lightning メッセージチャネル経由で通信します。pubsub に対する利点は、メッセージチャネルは同じページに制限されないという点です。メッセージチャネルでイベントをリスンしている Lightning Experience アプリケーションのあらゆるコンポーネントは、メッセージを受信すると更新されます。Lightning メッセージチャネルは、Lightning Experience のすべてのタブやポップアップウィンドウにおいて、すべての Lightning Web コンポーネント、Aura コンポーネント、Visualforce ページの間で機能します。また、異なる名前空間の間でも機能します。詳細は、「Lightning Message Service を使用した DOM 間の通信」を参照してください。

Lightning Messaging Service をサポートしないコンテナでは、pubsub モジュールを使用します。github.com/developerforce/pubsub からモジュールをダウンロードします。

publish-subscribe (pub/sub) パターンでは、片方のコンポーネントがイベントを公開します。他方のコンポーネントは、イベントを受信して処理するようにサブスクライブします。イベントに登録しているすべてのコンポーネントがイベントを受信します。pubsub モジュールでは、同じページ内のイベントに制限されます。