🐷

Reactよく言っているレンダリングはいったいなんですか?

2022/11/30に公開

結論

私の理解は以下の○がついているものです。

  • 仮想Dom(FiberNode)ツリー全探索 ×
  • 関数コンポネットの実行 ○
  • 差分検出処理 ×
  • dom操作 ×

reactレンダリングの仕組み

stateを変化させたり、contextを変化させたりするときには、Reactは一応FiberNodeツリー(よく言う仮想dom)を一番トップのrootから葉まで全探索します。
ただし、関数コンポネットのFiberNodeにたどり着いたときに、関数を実行するかしないか条件があります。
もし実行する条件に入ったら、renderWithHooksから関数を実行します
もし実行する条件に入らなかったら、bailout仕組みに入りまして、関数を実行しません。

ここの関数の実行はレンダリングと私は理解しております。

イメージ

関数を実行する場合

関数を実行しない場合

参考リンク

https://www.zhenghao.io/posts/react-rerender

Discussion