PreactチームがPreact Xを発表した。Reactの代替として、gzip圧縮で4KB未満のスリムサイズを維持したまま、FragmentsやHooksといった重要なアップデートを追加している。
FragmentsはPreact Xへの最も重要な追加であり、Preactのアーキテクチャを再考するための主要なドライバーの1つだった。FragmentsはラップするDOM要素のない親要素で子要素をインラインでレンダリングするもので、Preactのこれまでのバージョンで見られた多くの課題とエッジケースを解消する。 Fragmentsを使うと、render関数から複数のノードを返すこともできる。
React HooksおよびTNG-Hooksと同様に、Preact Hooksはコンポーネント間でロジックを簡単に共有する方法を提供する。PreactでHooksを利用するには、preact/hooks
モジュールをインポートする必要がある。Preact Hooksは3.5KBのcoreに含まれていないことに注意しよう。ただし、このモジュールを追加したからといってPreactのサイズが大幅に増えるわけではない。
新しいcomponentDidCatch
メソッドにより、render
などのライフサイクルメソッド内のエラーハンドリングも改善されている。componentDidCatch
を使うことで、Preact開発者はライフサイクル例外をハンドルし、ユーザーフレンドリーなエラーメッセージを表示し、外部のロギングサービスにログを記録することができる。
Preact XはgetChildContext()
の後継であるcreateContext
を導入し、レンダリングツリーにプロパティ更新を伝えるPub/Subソリューションを提供する。これまでは、値を変更する中間コンポーネントが仮想DOMツリーの深くに更新を伝える効果を無効にして制限することがあった。
またPreact Xでは、PreactコンポーネントをスタイリングするCSS Custom Propertiesを直接サポートするようになった。
Preact Xとその背後にある設計哲学をもっと学ぶには、PreacチームメンバーであるMarvin Hagemeister氏の最近の講演「The Art of deleting Code」を見てみよう。
Preactはコアのレンダリング機能だけでなく、サーバーサイドレンダリング、Web Components、PWAsもサポートしている。
PreactはMITライセンスのもと利用できるオープンソースソフトウェアだ。Preactのコントリビューションガイドラインとその行動規範に従ったPreact GitHub repo経由のコントリビューションが歓迎されている。