Redux - Deriving Data with Selectors
派生データ
- state は小さく保つ。必要なら派生データを作る。
- e.g.
- 全 todo 群=>state
- 全 todo 群から完了した todo だけをフィルタしたもの=>派生データ
- メリット
- state が読みやすくなる
- 派生データを作るロジックを減らせる、また同期が容易になる
- 元の状態が残っており変更されない
セレクタで派生データを計算
セレクタの基本
- selector とは、state を受け取って、それを基に何らかの値を返す関数
- selector は
select***
の形で命名すると良い
- selector が書かれる典型的な場所
- slice(reducer の近く)
- コンポーネント内(または
useSelector
の中にインラインで)
- selector は、state にアクセスできるあらゆる場所で使える
- useSelector, mapState, connect, thunk, saga など
- ただし reducer 内では基本的に使わない
セレクタで state の情報を隠す