kyoagunのブログ

技術系、PdMについてを書いていこうと思います。

stateとpropsの違い、stateをどこに配置するかの決め方

reactのコンポーネントは基本的にオブジェクトという考え方です。
※コンポーネント名は常に大文字で始めること。


stateとpropsの違いは、

stateは完全にコンポーネントによって管理されたプライベートなものです。
propsは、コンポーネントに渡す引数です。

コンポーネントのライフサイクル:

・マウント (mounting)
・アンマウント (unmounting)

マウント (mounting)とは
DOM として描画されるときです。

アンマウント (unmounting)とは、
DOM が削除されるときです。

アロー関数とは、

通常関数との違いは、


stateの特徴:

①state の更新は非同期に行われる可能性がある
stateを直接変更しないこと、stateを直編集できるのは、コンストラクタ内に限定する。
②state の更新はマージされる
③データは下方向に伝わる(トップダウン/単一方向とも呼ばれる)

setStateを使う際に、prevStateとは


■stateを決める
1.親からpropsを通じて与えられたデータでしょうか?もしそうなら、
 それはstateではありません。
 
2.時間経過で変化しないままでいるデータでしょうか?もしそうなら、
 それはstateではありません。
 
3.コンポーネント内に他のpropsやstateを使って算出可能なデータでしょうか?もしそうなら、
 それはstateではありません。
 
■stateをどのコンポーネントに配置するかを決める手順
1.その state を使って表示を行う、すべてのコンポーネントを確認する

2.共通の親コンポーネントを見つける(その階層構造の中で、ある state を必要としているすべてのコンポーネントの上位にある単一のコンポーネントのことです)

3.共通の親コンポーネントか、その階層構造でさらに上位の別のコンポーネントが state を持っているべきである

4.もし state を持つにふさわしいコンポーネントを見つけられなかった場合は、state を保持するためだけの新しいコンポーネントを作り、階層構造の中ですでに見つけておいた共通の親コンポーネントの上に配置する