問題
開発者は、取引先責任者のリストを更新するApexメソッドを作成し、LightningWebコンポーネントで使用できるようにしたいと考えています。 これを実現するために、開発者はどのアノテーションをApexメソッドに追加する必要がありますか。
- @RemoteAction
- @AuraEnabled
- @AuraEnabled(cacheable=true)
- @RemoteAction(cacheable=true)
正解
- @RemoteAction
- @AuraEnabled
- @AuraEnabled(cacheable=true)
- @RemoteAction(cacheable=true)
解説
@AuraEnabled
と @RemoteAction
は、Apex クラスのメソッドにアクセスするために使用されるアノテーションですが、それぞれ異なるコンテキストで使用されます。
- @AuraEnabled:
- Lightning コンポーネントおよびLightning Web コンポーネントでApexメソッドを呼び出すために使用される。
cacheable=true
を指定することで、クライアントサイドのパフォーマンス向上のためにデータをキャッシュできる。- 読み取り専用のメソッドでのみ
cacheable=true
を使用することができる。
- @RemoteAction:
- Visualforce ページの JavaScript から Apex メソッドを呼び出すために使用される。
- JavaScript リモート呼び出しを可能にするが、Lightning コンポーネントでは使用されない。
@AuraEnabled
アノテーションは新しいLightningフレームワーク向けに、@RemoteAction
は古いVisualforceページ向けに設計されています。したがって、現代のSalesforce開発では、@AuraEnabled
の使用がより一般的です。
それぞれの選択肢の理由について説明します。
□ @RemoteAction
これは不正解です。@RemoteAction
はVisualforceページのJavaScriptからApexメソッドを呼び出すためのアノテーションであり、Lightning Webコンポーネントでは使用されません。
□ @AuraEnabled
これは正解です。Lightning WebコンポーネントからApexメソッドを呼び出すためには@AuraEnabled
アノテーションを使用する必要があります。
□ @AuraEnabled(cacheable=true)
これは不正解です。cacheable=true
属性は、クライアント側でデータをキャッシュするために読み取り専用のメソッドにのみ使用されます。データを更新するメソッドには適用されません。
□ @RemoteAction(cacheable=true)
これは不正解です。@RemoteAction
アノテーションはcacheable=true
属性と組み合わせて使用されず、またLightning Webコンポーネントでは使用されません。
コメント