この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

AuraEnabled アノテーション

AuraEnabled アノテーションにより、Lightning コンポーネントから Apex メソッドおよびプロパティへのアクセスが可能になります。
AuraEnabled アノテーションはオーバーロードされ、2 つの別々の異なる目的で使用されます。
  • Apex クラスの静的メソッドに対して @AuraEnabled を使用すると、その静的メソッドをリモートコントローラアクションとして Lightning コンポーネントで使用できます。
  • Apex インスタンスのメソッドおよびプロパティに対して @AuraEnabled を使用すると、クラスのインスタンスがサーバ側アクションからデータとして返されたときにそれらのメソッドおよびプロパティを逐次化できます。
  • @AuraEnabled のこの異なる使用法を同じ Apex クラス内で組み合わせないでください。
  • 静的 @AuraEnabled Apex メソッドのみをクライアント側コードからコールできます。Visualforce スタイルのインスタンスのプロパティと getter/setter メソッドは使用できません。代わりに、クライアント側コンポーネントの属性を使用します。

重要

メソッドの結果のキャッシュ

実行時のパフォーマンスを改善するには、@AuraEnabled(cacheable=true) を設定してクライアントにメソッドの結果をキャッシュします。cacheable=true を設定するには、メソッドがデータのみを取得する必要があり、データを変更することはできません。

メソッドを保存可能 (キャッシュ可能) としてマークすると、サーバとの往復を待たずにクライアント側ストレージのキャッシュデータをすばやく表示できるようになり、コンポーネントのパフォーマンスが向上します。キャッシュデータが古くなっている場合、フレームワークによってサーバから最新データが取得されます。特に、待ち時間の長い接続、低速の接続、信頼性の低い接続 (3G ネットワークなど) のユーザの場合には、キャッシュが役立ちます。

API バージョン 44.0 以上のコンポーネントの Apex メソッドから返されるデータをキャッシュするには、Apex メソッドに @AuraEnabled(cacheable=true) アノテーションを付加する必要があります。次に例を示します。

1@AuraEnabled(cacheable=true)
2public static Account getAccount(Id accountId) {
3    // your code here
4}

API バージョン 44.0 より前では、Apex メソッドから返されるデータをキャッシュするには、Apex メソッドをコールするアクションごとに JavaScript コードで setStorable() をコールする必要がありました。API バージョン 44.0 以上では、Apex メソッドを保存可能 (キャッシュ可能) としてマークする必要があり、JavaScript コードの setStorable() をコールする必要がなくなりました。Apex クラスのメソッドのキャッシュ表記が一元化されるため、Apex アノテーション手法の方が優れています。