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 コンポーネントの例もあります。

関連トピック