本記事は、モジュール「Lightning Web Components and Salesforce Data」の覚え書き、気づきの整理です。
Salesforce組織のデータと対話するLightning Webコンポーネントを開発する話(原文ママ) 。
3単元あるが全部ハンズオンチャレンジという久しぶりの構成。(ここ最近はクイズのみが多かった)
Use Lightning Data Service to Work with Data
- Lightning Data Service は、salesforceのデータを操作するのに推奨で最も簡単な方法。(クライアントのキャッシュを利用するとのこと
- Lightning Webコンポーネントで単一のレコードを操作する最も簡単な方法:lightning-record-*-formコンポーネントを使用する。もう1つは LDS wire adapters を利用する。
- ハンズオンは取引先責任者のlwc を作成するだが、直前に取引先に対してのlwc を作成するので、サンプルを実装してからであればチャレンジのクリアに詰まるところがない。
Use Apex to Work with Data
- Apex を利用する方法は、Aura Component と変わらず。
- public or global で staticなメソッド
- AuraEnabledアノテーションをつける
- AuraEnabledアノテーションが cacheable のとき、DMLは禁止
- wire を使用する場合は、対象のメソッドのAuraEnabledアノテーションが cacheable=true であること。
- Apexメソッドによってキャッシュされたデータを更新するには、refreshApex関数を呼び出し。
- 強制的にApexメソッドを呼び出す方法:
- 用途は、select の戻り値をハンドリング or DML操作
- javascript のメソッド内で呼び出し&戻り値がプロミス
- await は使用不可?
Handle Server Errors
- スローされるエラーはお決まりの構造がある。
- wire と Functionを強制的に呼び出したパターンのサンプルあり
- 最後にLightning WebコンポーネントでSalesforceデータを操作する方法がまとめてある。
LWC の作成方法を学ぶというところで、javascript と比較しながら見ていたんですが salesforce 独自の仕様があったりする? @api や @wire の他に。
その辺の注釈も欲しかったり。
あと2単元目にてwireアノテーションを使用しないコードを記述する例題が欲しかったな・・・。いろいろ試行ができそう。