- Reactの流儀(Thinking in React) と
Presentational and Container Components
パターン(デザインパターン) を適用すると良い
React の 流儀
下記の流れでコンポーネントを作る
ロジックを持たない静的なコンポーネントを作成
- データモデルを受け取って、UI の描画だけを行う
- state を一切使わない
UI を表現するために必要最小限の state(状態) を特定
3 の state を、どのコンポーネントに、どの state を持たせるか決める
逆方向のデータフローを追加
上記の手順は下記に相当
- 1, 2 =>
Presentational Component
の設計 - 3, 4, 5 =>
Container Components
の設計
Presentational and Container Components
パターン (デザインパターン)
ひとつのコンポーネントを下記の 2 つに分離
Presentation Component
- 純粋に見た目だけを責務とする
- 自らはロジックを持たず、見た目だけで完結
- props は純粋に JSX で使うもののみ
- => storybook に登録できるもの
Container Component
Presentation Component
にロジックを追加するコンポーネントPresentation Component
をimportしてCustom Hook
とつなげる
Custom Hook
- コンポーネントから Hooks のロジックを切り出したもの
メリット
- よりメンテナンスの高いコンポーネントを促される
- 独立性が高い
- 読みやすい
- 再利用可能
- テストしやすい