2021-06-08
ひとこと
IE11 サポート終了のお知らせ、Salesforce Live in Japan などなど。
読んだ
📝 : 下の方に内容メモあり
☁︎ Salesforce
- 📝 Inter-Component Communication Patterns for Lightning Web Components | Salesforce Developers Blog
- LWC のコンポーネント間通信の方法を「親から子」「子から親」「親子関係のない LWC 間」の 3 タイプに分けて説明。学びたての頃にこう説明してほしかったやつ
- Integration: MuleSoft Composer for Salesforce - YouTube
- デルタ生成ツールによるパッケージ化されていないリリースの最適化 | Developer Force Blog
- SFDX-git-delta というプラグインの紹介。コミット履歴から差分情報だけを持った package.xml および destructiveChanges.xml を生成するので効率よくデプロイできる
Web, Frontend
- WebAssembly で、JIT コンパイラに迫る高速な JavaScript エンジンを実装へ。Bytecode Alliance が技術解説。JavaScript 以外の言語でも - Publickey
- curl でパフォーマンス測定 | DevelopersIO
--write-out
オプション
- progfay/benefit-from-end-of-ie: List of APIs that will be available due to IE termination
- IE 切ったら使えるようになる API リスト
- Interface vs Type alias in TypeScript 2.7 | by Martin Hochel | Medium
- ちょい古い記事
- ep83 IE | mozaic.fm
- Chromium Blog: Update on User-Agent String Reduction in Chrome
- UA 文字列からブラウザや OS のバージョン情報などは段階的に削除していく。具体的なスケジュールも
Rust, WebAssembly
- An introduction to WebAssembly for JavaScript Developers
-
Rust で Web アプリケーションはどこまで開発できるのか - Speaker Deck
その他
- ネットワークの勉強方法を聞いてみた。 - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
- VS Code の画面を共有するときはキー入力が見える「スクリーンキャストモード」を有効にしてみよう | DevelopersIO
読みたい
- Bytecode Alliance
- How to Build a Webview-Powered VS Code Extension with LWC | Salesforce Developers Blog
- HTTP キャッシュ入門の入門 – cat /dev/random > /dev/null &
- Keeping third-party scripts under control
- Using asynchronous web APIs from WebAssembly
- The webworkers driven UI framework neo.mjs version 2 release announcement | by Tobias Uhlig | Apr, 2021 | ITNEXT
- 楕円曲線暗号アルゴリズムを理解する| TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜| BPS 株式会社
- Use CSS Variables instead of React Context | Epic React by Kent C. Dodds
- 📕 Tokio チュートリアル (日本語訳)
書いた
Stale
読んだ記事のメモ
Inter-Component Communication Patterns for Lightning Web Components | Salesforce Developers Blog
コンポーネント間の 3 つの通信(communication)パターンを
- 親から子
- 子から親
- 親子関係のない他コンポーネント
の 3 つに分類し、各パターンにおける通信方法を説明。
1. 親から子 (Passing data down the component hierarchy)
3 つある
- public プロパティ
- 子コンポーネントのクラスのプロパティに
@api
デコレータをつける - 値が変更されたときにカスタムロジックを実行するとかはできない
- 子コンポーネントのクラスのプロパティに
- public な getter/setter
- 使い勝手は public プロパティとほぼ一緒だが、カスタムロジックを仕込める
- そのままでは永続性を提供しない(値が保持されない) ->
_
prefix つきの private なプロパティに内部的に値を保持しておくのがよくあるパターン
- public なメソッド
- public プロパティや getter/setter と異なり、HTML タグ内で使うことはできない。JS から呼び出す必要がある
2. 子から親 Passing data up the component hierarchy
- DOM Event 使う
- 直接の親ではないコンポーネントにイベントを伝搬したい場合は
bubbles: true
をつける - ref. イベント伝達の設定 - Salesforce Lightning Component Library
3. 親子関係のないコンポーネント Passing data to components that share no common ancestry
- Lightning Message Service か pubsub module を使う
- Lightning message service
- LWC, Aura, Visualforce 間のコミュニケーションにも使える
- 詳細はここには書かないけど、3 つのキーとなるステップがある
- LightningMessageChannel メタデータ型でメッセージチャンネルを宣言する
@salesforce/messageChannel
のpublish()
関数でメッセージを publish する@salesforce/messageChannel
のsubscribe()
関数でメッセージを subscribe する
- pubsub module
- LMS をサポートしてないコンテナでの最終手段として使用する必要がある
- 公式にはサポートしておらず積極的なメンテもしてない