tamuです。
Lightning Web ComponentでサードパーティJavaScriptライブラリを使う方法について簡単にまとめました。
今回はスプレッドシート風の表示をしてくれるライブラリを使ってみます。 「エクセルみたいに複数のレコードを編集したい」っていう声、昔からありましたよね。
準備
Lightning Web ComponentでサードパーティJavaScriptライブラリを使うには、静的リソース(static resource)経由で使う必要があります。 まずはJavaScriptライブラリをダウンロードしてきます。
ダウンロード
必要な外部ライブラリは次のとおりです。
- https://github.com/jspreadsheet/ce
- index.js
- jspreadsheet.css
- https://github.com/jsuites/jsuites
- jsuite.js
- jsuite.css
配置
ダウンロードしてきたファイルを staticresources に配置します。
今回はディレクトリをそれぞれで作ってます。
staticresources 下に jspreadsheet ディレクトリを掘り、その下に jspreadsheet からダウンロードしたファイルを配置します。
同じように、 jsuites ディレクトリを掘り、その下に jsuites からダウンロードしたファイルを配置します。
※ 今回はわけてますが、同じディレクトリに入れても問題なし
| |
続いて staticresources 下にメタ情報を配置します。
jspreadsheet.resource-meta.xml
| |
jsuites.resource-meta.xml
| |
どっちも同じで大丈夫です。
これでサードパーティJavaScriptライブラリを使えるようになりました。
ライブラリの読み込み
静的リソースへのアクセス(https://developer.salesforce.com/docs/component-library/documentation/ja-jp/lwc/lwc.create_resources) では画像ファイルを使っていますが、今回はJavaScriptファイルを読み込む必要があります。
まずは動いているソースを掲載します。
| |
URLの取得
| |
これで jspreadsheet が格納されているURLを取得しています。
このあと読み込みです。
JS, CSSの読み込み
| |
ライブラリを読み込むタイミングは、コンポーネントの表示が完了したあとです。
| |
loadScript でJSを、 loadStyle でCSSを読み込みます。
| |
読み込みが完了したらUIを構築してきます。 ここからはライブラリ側の処理です。
| |
読み込み失敗時は画面に何か出して終了です。
ライブラリの処理
まずはJspreadsheetのサンプルコードをそのまま記載して、動くことを確認していきます。
| |
ここまでやって、テンプレートは div だけを用意します。
| |
これをローカルで動かすと下のようになります。
Salesforce上で動かすにはまだいくつか調整が必要なので次回やります。
まとめ
- 外部ライブラリは一度ダウンロードする必要がある
- renderが終わったあとにライブラリを読み込む
- その後は普通にライブラリ側を操作する
