下記のような設問があった.
Salesforce Lightning Web Component(LWC)で親コンポーネントから子コンポーネントへのデータの伝達に最も最適な方法を選択せよ.
A. Applicationイベントを使用して、データを子コンポーネントに伝達します。
B. Componentイベントを使用して、データを子コンポーネントに伝達します。
C. @apiデコレータを使用して、子コンポーネントの公開プロパティを通じてデータを渡します。
D. Auraメソッドを使用して、子コンポーネントのメソッドを呼び出し、データを渡します。
解答: C
LWCにおいて親コンポーネントから子コンポーネントへデータを伝達する一般的で効果的な方法は@apiデコレータを使用して子コンポーネントの公開プロパティを介して行うことであるから, Cが解答になる.
LWC(Lightning Web Component)とは, HTML/CSS, Jsを使用してSalesforce上で使用できるアプリケーションを開発するための手法のこと.
LWCにはデコレーターってものがあって, それらを活用すると親子関係にあるコンポーネント間でのイベント伝達や値の受け渡しなどが可能になるそうな.(https://sodech.hatenablog.com/entry/2023/05/30/093350)
デコレータは変数の前に記述し, 主要なものには[@api @track @wire]がある.
@apiデコレータは, コンポーネントの公開プロパティや公開メソッドを定義するために使用されるもので, 特に親コンポーネントからアクセスできるようになる. @apiでマークされた変数は公開APIの一部とみなされ, 他のコンポーネントから値を渡したり特定のメソッドを呼び出すことを可能にする.
@trackデコレータは, プロパティ内部の状態の変更を検出するために必要になる場合がある.
@wireデコレータは, レコードへのアクセスやApexクラスの処理を呼び出す時に使用する. ちなみに@wireを使わなくてもApexクラスのメソッドは呼び出すことができる.