Stateが更新されたときに関数コンポーネントは再び先頭から処理が実行され、またStateが更新されたらまた先頭からと差分があるDOMを検知して、その変更を反映して画面に表示する仕組みとなっています。
変更を検知してComponentを再処理することを再レンダリングという。
初回のレンダリング(Componentのマウント)時と再レンダリングは異なり、useStateの()で設定している初期値はマウント時だけで、毎回初期化されることはない。
再レンダリングが起きる条件
再レンダリングが起きるのは、以下の3つ。
- Stateが更新されたComponent
- Propsが変更されたComponent
- 再レンダリングされたComponent配下の全Component