JSer.info #519 - Lighthouse 7.0.0がリリースされました。
Node.js 10のサポート終了、PWAカテゴリの変更、アクセシビリティのテストに使うaxe-core
のアップデート、nightlyをlighthouse@next
としてインストールできるようになるといった変更が含まれています。
また、スクリーンショットがフルページとなりレポートのファイルサイズが増加しています。
ReactからReact Server Componentsと呼ばれる実験的な実装とRFCが公開されています。
- Introducing Zero-Bundle-Size React Server Components – React Blog
- RFC: React Server Components by josephsavona · Pull Request #188 · reactjs/rfcs
React Server Componentsは、サーバサイドでReact Componentをレンダリングする仕組みですが、レンダリング結果はHTMLではなくJSONライクなデータ(SlotとコンポーネントのJSON表現を組み合わせた形式)です。
リクエストごとにサーバコンポーネントをレンダリングした結果をJSON(クライアント描画するコンポーネントを含む)のレスポンスとして返し、クライアントではそのレスポンス結果を使いレンダリングできる仕組みとなっています。
大まかにいえば、コンポーネントレベルでのSSRとHydrateを行える仕組みです。
サーバサイドでコンポーネントをレンダリングすることで、サーバでのレンダリング結果のみを扱うクライアントでは不要なライブラリを含めずに扱えます。
そのため、クライアントに必要なbundleサイズを減らせるのが主な目的となっています。
Facebookのproductionでテストした結果、bundleサイズが最大30%削減できているそうです。
詳しくは、次の動画とデモアプリで解説されています。
- Data Fetching with React Server Components - YouTube
- reactjs/server-components-demo: Demo app of React Server Components.
現在はまだRFCが出たばかりの実験的な段階であるため、来年にもっと詳細を決めていくようです。
Micro Frontends Architecture Patternsという電子書籍では、 フロントエンドで見かけるアーキテクチャについて色々とまとめられています。
まだ決まりきったパターンがないMicro Frontendsについても色々なパターンについて紹介されています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Release v7.0.0 · GoogleChrome/lighthouse
github.com/GoogleChrome/lighthouse/releases/tag/v7.0.0
Lighthouse 7.0.0リリース。
Node.js 10のサポート終了。
PWAカテゴリの変更、アクセシビリティのテストに使うaxe-core
のアップデート、nightlyをlighthouse@next
としてインストールできるようになる。
また、スクリーンショットがフルページとなりレポートのファイルサイズが増加するなど
Release v4.0.0 · less/less.js
github.com/less/less.js/releases/tag/v4.0.0
Less 4.0.0リリース。
破壊的な変更としてmixinの呼び出し方のチェックをより厳密に変更、math
オプションの初期値をparens-division
に変更など。
min()
/max()
のサポート改善、isdefined()
の追加など
Announcing Stimulus 2.0 - Announcements - Stimulus Discourse
discourse.stimulusjs.org/t/announcing-stimulus-2-0/1482
Basecampで使われているStimulus 2.0リリース。
Controllerでvalues
とclasses
プロパティを追加、EventListnerのonce
とpassive
のサポートなど。
data
属性にidentifier
を含めて使うように変更、input
要素をchange
からinput
イベントで監視するように変更など
Release v6.0.0 · fb55/htmlparser2
github.com/fb55/htmlparser2/releases/tag/v6.0.0
htmlparser2 6.0.0リリース
Release v0.13.0 · developit/microbundle
github.com/developit/microbundle/releases/tag/v0.13.0
ライブラリを配布用にbundleするmicrobundle 0.13.0リリース。
--css
フラグを追加し、CSSをデフォルトでは外部ファイル(external
)として出力し、inline
でインライン化できるように。
アーティクル
Introducing Zero-Bundle-Size React Server Components – React Blog
reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html
Reactで試験的に実装されたReact Server Componentsについて。
リクエストごとにサーバコンポーネントをレンダリングした結果をJSONライクなデータ(SlotとコンポーネントのJSON表現を組み合わせた形式)として返し、クライアントではレンダリング結果を使いレンダリングできる仕組み。
サーバサイドでコンポーネントをレンダリングすることで、レンダリング結果のみを扱うクライアントでは不要なライブラリを含めずに扱えるためサイズを減らせる。
コンポーネントレベルでのSSRとHydrateを行える仕組み。
- RFC: React Server Components by josephsavona · Pull Request #188 · reactjs/rfcs
- Data Fetching with React Server Components - YouTube
Conditional JavaScript - JavaScript - Dev Tips
umaar.com/dev-tips/242-considerate-javascript/
選択的にモジュールをダウンロードする際に利用できるウェブAPIとブラウザのサポートについて。
メモリ、CPU数、バッテリー、ストレージの空き容量、ネットワーク、saveDataなど
サイト、サービス、ドキュメント
Moiva.io - Measure and compare JavaScript libraries
npmパッケージの同士を比較できるツール。
NPMダウンロード数、Bundlephobiaでのサイズ、ThoughWorks、Google Trends、GitHubのStar/Pulseなどを並べて見れるツール
Cloudflare Pages
Cloudflareの静的サイトホスティングサービス。
NetlifyやVercelのようにコミット/PRごとのレプビューURLの生成、Cloudflare Workersを使ったFaaSの仕組みを持っている
ソフトウェア、ツール、ライブラリ関係
cincheo/jsweet: A Java to JavaScript transpiler.
JavaのコードからTypeScript/JavaScriptのコードに変換するTranspiler
f/honst: Fixes your dataset according to your rules.
オブジェクトの配列に対してルールを元にデータを編集するライブラリ
Agamnentzar/ag-psd: Javascript library for reading and writing PSD files
PSDファイルの読み書きをするライブラリ
asos-craigmorten/opine: Fast, minimalist web framework for Deno ported from ExpressJS.
github.com/asos-craigmorten/opine
expressをDeno向けのポートしたウェブサーバライブラリ
書籍関係
Micro Frontends Architecture Patterns
zenn.dev/okmttdhr/books/8c977618755cb68ad2c0
Micro Frontendsを始めとしたアーキテクチャパターンについての電子書籍