Apex メソッドの Lightning Web コンポーネントへの公開
Apex メソッドを Lightning Web コンポーネントに公開するには、メソッドが static
で、かつ global
または public
のいずれかである必要があります。メソッドに @AuraEnabled
アノテーションを付加します。
次の型が入力と出力でサポートされます。
- プリミティブ — 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 メソッドをコールすることはできません。
Lightning Component フレームワークでは、Apex クラスの場所に関するルールは適用されません。Salesforce DX を使用している場合は、Apex クラスを <app dir>/main/default/classes
ディレクトリに配置します。
Apex メソッドを作成する場合、Apex クラスや sObject のようにパラメータをプリミティブとして渡すのか、複雑なデータ型として渡すのかを決定する必要があります。
lwc-recipes リポジトリには、プリミティブパラメータや複雑なパラメータを使用してメソッドをコールする apexImperativeMethodWithParams
および apexImperativeMethodWithComplexParams
コンポーネントの例もあります。
関連トピック