「React 18」登場、並列レンダリングが加わる

 ユーザーインターフェイス(UI)用のJavaScriptライブラリ「React」開発チームは3月29日、最新版「React 18」の公開を発表した。並列レンダリングなど多数の新機能が導入されている。

 Reactは米Facebookが開発してオープンソースとして公開するUI構築のためのJavaSriptフレームワーク。宣言的なView、コンポーネントベースなどの特徴を備え、既存のコードを書き換えることなく新しい機能を開発でき、NodeベースのサーバーでレンダリングしたりReact Nativeによりモバイルアプリケーションでも動く。React 18は2020年10月に公開されたバージョン17に続く最新版。

 新たにConcurrent Reactとして並列レンダリングを導入した。多くの新機能はConcurrent React上に構築されており、アプリケーション構築の方法に大きな影響を与えるとしている。デフォルトでは無効、オプトインで利用できる。合わせて、Relay、Next.js、Hydrogen、RemixなどのフレームワークでSuspenseを使ってデータのフェッチができるようになった。Suspenseは、コンポーネントツリーに表示されていない時に読み込みの状態を宣言的に特定できるもの。Suspenseを使ってアドホックでデータをフェッチすることは技術的には可能だが、推奨しないとしている。将来的には、Suspenseでデータにアクセスできる機能を公開し、フレームワークを使う必要がなくなるとしている。

 新機能としては、単一の再レンダリングで複数のステートアップデートを行うバッチ処理を自動で行うAutomatic Batchingを導入した。緊急(Urgent)と緊急ではない(Transition)アップデートを識別する新しいコンセプトを導入した。 クライアントとサーバーのレンダリングのためのAPIを再設計した。createRoot、hydrateRootなどの新しいAPIがあり、react-dom/clientからエクスポートされる。

 このほか、Strict Modeの振る舞い、ハイドレーションなども強化が加わっている。

React
https://reactjs.org