Apex メソッドの Lightning Web コンポーネントへの公開

Apex メソッドを Lightning Web コンポーネントに公開するには、メソッドが static で、かつ global または public のいずれかである必要があります。メソッドに @AuraEnabled アノテーションを付加します。

構文 

1public with sharing class ContactController {
2    @AuraEnabled(cacheable=true)
3    public static List<Contact> getContactList() {
4        return [
5            SELECT Id, Name, Title, Phone, Email, Picture__c
6            FROM Contact
7            WHERE Picture__c != null
8            WITH SECURITY_ENFORCED
9            LIMIT 10
10        ];
11    }
12}

次の型が入力と出力でサポートされます。

  • プリミティブ — Boolean、Date、DateTime、Decimal、Double、Integer、Long、String。
  • sObject — 標準およびカスタムの sObjects がサポートされます。
  • Apex — Apex クラスのインスタンス。(多くの場合、カスタムクラス)。
  • コレクション — 他のいずれかの型のコレクション。
  • Apex 内部クラスを Lightning Web コンポーネントからコールされる Apex メソッドのパラメータまたは戻り値として使用することはサポートされていません。
  • Lightning Web コンポーネントから参照される @AuraEnabled Apex メソッドでは、@NamespaceAccessible Apex アノテーションはサポートされません。両方のパッケージが同じ名前空間内にあっても、1 つのパッケージからインストールされた Lightning Web コンポーネントは、別のパッケージの Apex クラスから Apex メソッドをコールすることはできません。

Note

使用方法 

Lightning Component フレームワークでは、Apex クラスの場所に関するルールは適用されません。Salesforce DX を使用している場合は、Apex クラスを <app dir>/main/default/classes ディレクトリに配置します。

Apex メソッドを作成する場合、Apex クラスや sObject のようにパラメータをプリミティブとして渡すのか、複雑なデータ型として渡すのかを決定する必要があります。

lwc-recipes リポジトリには、プリミティブパラメータや複雑なパラメータを使用してメソッドをコールする apexImperativeMethodWithParams および apexImperativeMethodWithComplexParams コンポーネントの例もあります。

Tip

関連トピック

The Japanese Summer '24 guide is now live

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