Reactを学ぶ10

以下を参考に。 React の流儀
作業時間:1時間 経過時間:32時間
Reactの流儀
総おさらいの章。
Step1/UIをコンポーネントの階層構造に落とし込む
コンポーネントを分割するフェーズ。
Step2/Reactで静的なバージョンを作成する
データモデルからUIの描画だけ実装するフェーズ。 トップダウンからでも、ボトムアップからでも良いが、大規模開発では、ボトムアップからの方がテストしやすい 。
Step3/UI状態を表現する必要かつ十分なstateを決定する
インタラクティブな設計をするフェーズ。(データモデルの更新可能な設計)
stateをどのように決定するのか。 stateとpropsについて。以下に一致しない時は、stateとみなす。
- 親からpropsとして参照できるデータか
- 時間経過で変化しないままのデータか
- propsやstateから算出可能なデータか (1)はあんまり考える必要がない、(2)はユーザー操作から影響を受けるかどうか、(3)は(2)の結果的に影響を受けるかどうか。つまりは、ユーザー操作以降で影響を受けるデータかどうかを見極れれば良い。 ※ユーザー操作以外のajaxなどもあるから一概には言えないけど、そういうイメージ。
Step4/stateをどこに配置するべきなのかを明確にする
stateを所有するコンポーネントを決定するフェーズ。
所有させるコンポーネントの指標について。 stateを取り扱うすべてのコンポーネントより、共通の親コンポーネントを探し出す。 ※もし探しきれない場合は、stateを保持するだけのコンポーネントを作成し、親コンポーネントの上に配置する。
Step5/逆方向のデータフローを追加する
子コンポーネントから、stateを更新する処理を設計するフェーズ。
親コンポーネントには、stateを更新する子コンポーネントにコールバックを渡す。 コールバックが実行されたら、親コンポーネントはsetState()を呼び出し、stateを更新する。
stateは所有するコンポーネントで更新される、ということ。
「Main Concepts」は一読した。 Reactの基本的な設計には、どのコンポーネントにstateを所有させるか、が大きく関わっている。 上記の決定のため、コンポーネントを適切に切り分ける必要がある。 そのための実装等が記載されている、という所感を得た。
Advanced Guides
contextとは。 refとは。 High-Order Componentとは。 ポータルとは。 レンダープロップとは。
横断的関心事をどう解決するのか。 ミックスインは非推奨となった。