React fiber
再帰的な処理をやめて、ReactElementごとの更新処理を連結リスト(linked list)にして、一つ一つの更新処理を独立したものとして扱えるように それぞれのジョブが独立しているので途中停止も可能ですし、個々のジョブに優先度を付けることも可能になります。
同期的な再帰処理を、停止・再開可能な非同期処理にできる
requestIdleCallback()やrequestAnimationFrame()を使って、優先度付きのスケジューリングを擬似的に行っているんです
Fiberのコードはもはや、OSカーネルがプロセスのスケジューリングしているようなコードに見えます
非同期化の影響で、ストリーム化できるようになった
子をレンダリングした結果を使用して、親をレンダリングするのに利用するのではないかと思われ
fiberはReactにだいぶ前に導入された処理単位で、それまでは変更をチェックするときなどにコンポーネントの根元から順番に全部を一度に見ていたのですが、fiberという単位に小分けにして効率よく扱えるようになりました。fiberはそれ自体が連結リストになっていて、コンポーネントを連結できます。