【へいこうレンダリング】
並行レンダリング とは?
最終更新:
💡 画面更新を中断し、急ぐ入力を先に反映する
ReactがUI更新のレンダリングを中断・再開したり、不要になった作業を破棄したりできる仕組み。Transitionなどを使う更新で、急ぐ入力の反映と後回しにできる画面更新を分けられる。
📌 このページのポイント
- レンダリングの作業を中断・再開でき、古い更新を破棄することもある
- Transitionで後回しにする更新を指定し、入力欄自体の更新とは分ける
- React 18では新しいルートAPIへ移行し、並行機能を段階的に使う
- 任意の長いJavaScript処理を別スレッドへ移す仕組みではない
並行レンダリングって、画面を同時に描くの?
入力が止まりにくくなるの?
useTransitionで何を指定するの?
startTransitionの中で行う状態更新を、急がないTransitionとして扱えるよ。検索欄の文字自体は通常の更新にして、結果用の状態更新をTransitionにする。useDeferredValueで値の反映を遅らせる方法もある。startTransitionのコールバックそのものは、呼び出したときに実行されるんだ
Suspenseは通信を自動で待ってくれる?
Suspense対応のデータ取得やコード読み込みに対して、待っている間の表示を指定するものだよ。どんなfetchも自動で検出するわけではない。Transitionと組み合わせて、次の表示を準備する間に現在の内容を残すといった使い方ができるんだ
React 18に上げたら全更新が並行になる?
📖 おまけ:英語の意味
「Concurrent Rendering」 = 並行レンダリング
💬 Concurrentは「並行」の意味。複数の更新の作業を時間的に重ねて進めることで、急ぐ更新を先に扱える。別のCPUやスレッドで同時に計算する並列処理とは区別するよ