React 18正式版リリース。コアとなるレンダリングモデルに並行処理を導入、レンダリング速度、サーバサイドレンダリング速度の向上などを実現

今回は「React 18正式版リリース。コアとなるレンダリングモデルに並行処理を導入、レンダリング速度、サーバサイドレンダリング速度の向上などを実現」についてご紹介します。

関連ワード (必要、部分、高速等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


JavaScript対応のUIライブラリである「React 18」正式版がリリースされました。

React 18はAutomatic Batching、Server-Side Renderingの速度向上などをはじめとする機能強化が行われています。

Automatic Batchingでは、連続してステートの変更が行われる場合、そのたびにレンダリングの処理が走っていたところを、まとめて一回のレンダリング処理が走るだけになることで、速度が向上するというもの。

React 18以前では、Reactのイベントハンドラによる連続処理では、このようなレンダリングのまとめが行われていましたが、React 18では「createRoot」を用いることで、あらゆるステートの変更に対してこうした処理が行われるようになります。

React 18 adds automatic batching. Batching is when React combines multiple setState() calls into a single re-render to improve performance.

Previously, React only batched updates inside event handlers. In React 18, more updates are batched by default, improving performance. pic.twitter.com/4dhmSRmj68

— React (@reactjs) March 29, 2022

Server-Side Renderingでは、「Streaming HTML」と「Selective Hydration」によって速度向上が実現されます。

Streaming HTMLは、サーバサイドでHTMLを生成する際に、すべてのデータが揃わなくとも、データがかけているところはプレースホルダを置いてHTMLを生成してクライアントに投げてしまい、データが取得できたタイミングであとからプレースホルダを実際のデータに置き換える、という処理をReactが行ってくれる、というもの。

サーバがデータ取得の途中でもクライアントでHTMLを受け取って表示を開始できるため、見かけ上の性能が向上します。

If you wait for some data to load on the server, React can now stream HTML for the fallback (for example, a spinner) and let the user see the rest of the page. When the data is ready, React sends the content HTML along with a <script> tag to insert it into the right place. pic.twitter.com/7fcovPmbeo

— React (@reactjs) March 29, 2022

Selective Hydrationは、クライアントのHTMLにイベントハンドラをアタッチする場合、アタッチする部分を見つけるために必要とされるHTMLのレンダリングを行うJavaScriptが全部読み込まれていなくとも、先にレンダリング可能なところからイベントハンドラをアタッチしていく処理を可能にする、というものです。

これも読み込みの遅いJavaScriptに処理をブロックされることが減るため、速度の向上につながります。

Suspense also enables selective hydration. React 18 can start hydrating the HTML before all JavaScript code loads. Specifically, content wrapped in <Suspense> will not block the rest of the page from hydrating! If you start interacting, React will prioritize hydrating that area. pic.twitter.com/3bLbbW5y4x

— React (@reactjs) March 29, 2022

こうした新機能はReactのコアとなるレンダリングモデルに並行処理を持ち込んだことにより実現されていると説明されています。これにより従来の単一処理で割り込みできず、同期的な処理によるレンダリングよりも柔軟で高速な処理が可能になっているとのことです。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
OpenAIとStack Overflowが提携–技術ナレッジでモデルを強化
IT関連
2024-05-08 15:36
資生堂とNTT、化粧品の触り心地を非接触で体験できる技術を研究–オンライン販売のCX向上
IT関連
2024-09-21 07:31
セールスフォース、非営利団体向けクラウドサービスなど開始
IT関連
2021-06-08 07:45
サッポロHD、DX方針を発表–全社員をDX・ITに強い人材化
IT関連
2022-03-24 01:37
ヤフコメの“パトロールAI”、NewsPicksなどに無償提供 不適切コメントを排除
DX
2021-05-20 21:40
KINCHO、ローコード開発基盤でワークフローをシステム化
IT関連
2023-04-19 00:26
[速報]「AWS大阪リージョン」正式オープン。大阪ローカルリージョンを拡張し3つのアベイラビリティゾーンから構成、事前申し込みなど不要に
AWS
2021-03-03 23:54
重いウェブサイトで訪問者離反と機会損失–Contentsquare報告書
IT関連
2023-02-23 11:18
BMW iDrive 7のApple CarPlay セカンドスクリーン「ターンバイターンの経路案内」機能を実車で確認
IT関連
2021-03-13 09:05
インテル、データセンター向けAIプロセッサー「Habana Gaudi2」発表–「IPU」ロードマップも
IT関連
2022-05-14 13:35
大同ゴム、現場業務支援とデータ活用でエッジコンピューティン基盤を運用
IT関連
2023-04-05 16:26
マイクロソフト、Dev Box上の開発環境をコードで構成する「Config-as-code Dev Box Customizations」プライベートプレビュー開始
Microsoft
2023-11-24 11:57
さくらインターネット、生成AI向けクラウドサービス「高火力 PHY(ファイ)」提供開始。NVIDIA H100を8基搭載、200GbE×4本接続可能なベアメタルサーバ
GPU
2024-01-25 10:39
“FF14”内でフィッシング詐欺多発、スクエニが注意喚起 背景にはユーザーの急増
セキュリティ
2021-08-20 20:31