まず、Reselectライブラリをインストールします。次のコマンドを使用します:
npm install reselect
または
yarn add reselect
インストールが完了したら、次のようにしてセレクターを作成できます:
import { createSelector } from 'reselect';
// セレクターの定義
const getUsers = state => state.users;
const getActiveUsers = createSelector(
getUsers,
users => users.filter(user => user.isActive)
);
// 使用例
const state = {
users: [
{ id: 1, name: 'John', isActive: true },
{ id: 2, name: 'Jane', isActive: false },
{ id: 3, name: 'Bob', isActive: true },
]
};
console.log(getActiveUsers(state)); // isActiveがtrueのユーザーのみを返す
上記の例では、getUsers
というセレクター関数を定義し、getActiveUsers
セレクターをcreateSelector
を使用して作成しています。getActiveUsers
は、getUsers
セレクターの結果を受け取り、isActive
プロパティがtrue
であるユーザーのみを返します。
Reselectは、セレクターのメモ化と再計算の効率化も自動的に行います。これにより、同じ入力に対して複数回のセレクターの計算が行われるのを防ぐことができ、パフォーマンスを向上させることができます。
以上が、Reselectライブラリを使用してセレクターを作成する方法と、それに関連するコード例です。これにより、Reduxアプリケーションの状態から必要なデータを効率的に抽出することができます。