問題
開発者は、複数のLightningウェブコンポーネントを含む天気アプリを作成しました。コンポーネントの1つはToggleと呼ばれ、華氏または摂氏の単位を切り替えます。Toggleコンポーネントでユーザーが華氏から摂氏、またはその逆に切り替えると、その情報はTemperatureコンポーネントに送信され、温度が変換されて表示されます。これを実現するには、どのような方法が推奨されますか。
- コンポーネント間の通信を処理するカスタムイベントを作成する。
- ToggleコンポーネントでTemperatureコンポーネントのメソッドを呼び出す。
- コンポーネント間の通信にアプリケーションイベントを使用する。
- コンポーネント間の通信にはLightning Message Serviceを使用する。
正解
- コンポーネント間の通信を処理するカスタムイベントを作成する。
- ToggleコンポーネントでTemperatureコンポーネントのメソッドを呼び出す。
- コンポーネント間の通信にアプリケーションイベントを使用する。
- コンポーネント間の通信にはLightning Message Serviceを使用する。
解説
それぞれの選択肢の理由について説明します。
□ コンポーネント間の通信を処理するカスタムイベントを作成する。
これは正解です。カスタムイベントは、Lightning Web Components (LWC) 内のコンポーネント間の通信に特に適しています。特に、親子関係や同じ階層にあるコンポーネント間でのデータの受け渡しに非常に効果的です。今回のシナリオでは、Toggle コンポーネントと Temperature コンポーネントという2つのLWCコンポーネント間での通信が必要なため、この方法が最も推奨されます。
□ ToggleコンポーネントでTemperatureコンポーネントのメソッドを呼び出す。
これは不正解です。LWCでは、他のコンポーネントのメソッドを直接呼び出すことは推奨されません。コンポーネント間の疎結合を保つため、イベントベースの通信が好ましいです。
□ コンポーネント間の通信にアプリケーションイベントを使用する。
これは不正解です。アプリケーションイベントはAuraコンポーネントで使用され、LWCではサポートされていません。LWCでは、カスタムイベントやLightning Message Serviceが推奨されます。
□ コンポーネント間の通信にはLightning Message Serviceを使用する。
これは不正解です。Lightning Message Serviceは、LWC、Auraコンポーネント、Visualforceページ間での通信を可能にするサービスですが、同じLWC内のコンポーネント間の通信には、カスタムイベントがより適しています。このオプションは、異なる技術間での通信やページ全体にわたる広範な通信が必要な場合に特に役立ちますが、今回のシナリオでは不適切です。
コメント