Message Service の範囲の定義

Lightning Message Service では、登録コンポーネントがメッセージを受信するアプリケーション内の場所の範囲を定義できます。範囲をアプリケーションの有効な領域に制限したり、アプリケーション全体に設定したりできます。

Lightning Web コンポーネントの範囲設定機能は、@wire(MessageContext) を使用する場合にのみ利用できます。

Important

アプリケーションの有効な領域には、選択したナビゲーションタブおよび項目、ユーティリティ項目、ES6 ライブラリが含まれます。ユーティリティ項目は常に有効です。ナビゲーションタブとナビゲーション項目には、以下が含まれます。

  • 標準ナビゲーションタブ
  • コンソールナビゲーションワークスペースタブ
  • コンソールナビゲーションサブタブ
  • コンソールナビゲーション項目

有効な登録範囲領域とアプリケーションの登録範囲領域を示している図

アプリケーションの任意の場所からメッセージチャネルでメッセージを受信するには、lightning/messageService から APPLICATION_SCOPE をインポートします。次に、subscribe() をコールして、4 番目の subscriberOptions パラメータ (省略可能) の { scope: APPLICATION_SCOPE } を渡します。

1// Import message service features.
2import {
3    subscribe,
4    unsubscribe,
5    APPLICATION_SCOPE,
6    MessageContext
7} from 'lightning/messageService';
8
9// To pass scope, you must get a message context.
10@wire(MessageContext)
11    messageContext;
12
13// Pass scope to the subscribe() method.
14    subscribeToMessageChannel() {
15        if (!this.subscription) {
16            this.subscription = subscribe(
17                this.messageContext,
18                recordSelected,
19                (message) => this.handleMessage(message),
20                { scope: APPLICATION_SCOPE }
21            );
22        }
23    }

有効な領域からのメッセージの受信がデフォルトの動作です。範囲を有効な領域に制限するために scope プロパティを含める必要はありません。

The Japanese Summer '24 guide is now live

日本語の Summer '24 ガイドが公開されました! 「Component Reference (コンポーネントリファレンス)」は、以前と同様にコンポーネントライブラリにあります。