F8でもReact Fiberについての発表もあったので、気になっている人も多いReact Fiberの現状について簡単に書きたいと思います。
Reactの完全な書き換えということで、使い方も変わってしまうと思っている人もいると思いますが、内部実装の書き換えであり、利用者から見える部分ではほとんど変更はありません。
もちろん、react-fiberというパッケージをインストールするというわけでもありません。
むしろ、v16
の時点では現在の実装と互換性を保たれているので、v16
がリリースされた時に、v15.5
を使っていればほとんどそのままv16
に更新できると思います。
そして、言われなければ内部実装が変わっていることに気づかないのではないかと思います。
とりあえずどうなるのか知りたい人向けのまとめ
- v16では、基本的にはv15の時と同じように動作します。逆に言うとパフォーマンスもそんなに変わらない(はず)です
- renderメソッドから
[<Foo />, <Bar />]
みたいに配列で返したり、文字列をReactElementでラップすることなく返せるようになります
- v17では、デフォルトで非同期のrendering(後述)になります。v16でも何らかのAPIでopt-inで試せるようにはなりそうです。現状は
ReactDOM.unstable_deferredUpdates
で一部試すことができます
- v17では、劇的に高速になるというよりは、ユーザーの入力をブロックしないようにしたり、柔軟に更新処理をスケジューリング出来るようになる予定です
注意点
以下の情報は、Reactをただ使いたい人にとっては知る必要のない内部実装の話です。多くの人にとってはここまでの情報でReact FiberについてはOKだと思います。v17になるまでは。
Read on →