💿

reactレンダリング備忘録

2022/12/02に公開

レンダリングとは何か?

コンピュータプログラムを用い、もととなる数値データを計算し表示を行うこと

多くの場合web界隈では、ブラウザによるソースコードを画面へ描写することを指します。
ただし、reactが絡むとそうとは限りません。react内でもレンダリングプロセスがあります。図示すると以下になります。

それぞれのレンダリングの意味

react

propsとstateをもとに、DOMに変更があるか計算する(Reconciliation)

ブラウザ

ソースコード(html,css,javascriptなど)を画面へ描写すること

reactのライフサイクル

下の図のように、レンダリングとDOMの更新が終わったらuseLayoutEffectとuseEffectが呼び出されます。
useLayoutEffectはDOMの更新前、useEffectは更新後です。
https://github.com/Wavez/react-hooks-lifecycle から拝借

全てのコンポーネントを memo するべきですか?

基本的にしなくていい。レンダリングが遅いときに使う。
個人的には、関数、object、arrayはメモ化してます。計算に時間かかるものもメモ化してます。

Discussion