Repolode
reduxjs

reduxjs/reselect

ReduxなどのプレーンなJavaScriptのstateからデータを導出する、メモ化セレクター関数を作成するTypeScriptライブラリです。

スター
19,005
フォーク
666
未解決の Issue
38
最終コミット
昨日

これは何?

Reselectは、メモ化された「セレクター」関数を作成するcreateSelectorを提供します。stateから値を取り出す1つ以上の入力セレクターと、それらの値から導出値を計算する結果関数を渡します。出力セレクターは、取り出した値が変化した場合にのみ再計算され、何も変わっていなければ同じ参照を返します。

これにより、Reduxには最小限のstateだけを保持し、導出データは必要に応じて計算できます。セレクターは合成することもでき、あるセレクターの出力を別のセレクターの入力として使えます。ReselectはRedux Toolkitに含まれているほか、reselectパッケージとして単独でインストールすることもできます。

このライブラリには、動作をカスタマイズするweakMapMemoize、lruMemoize、createSelectorCreatorなどのメモ化オプションに加え、入力の安定性やidentity関数を検証する開発時専用のチェック機能があります。

主な機能

  • 01入力が変わっていない場合に再計算を省く、メモ化セレクターを作成します。
  • 02ほかのセレクターを入力として使い、セレクターを合成できます。
  • 03結果の参照を安定させることで、React-ReduxやReactで不要な再レンダリングを抑えます。
  • 04セレクターのオブジェクトからセレクターを構築するcreateStructuredSelectorを提供します。
  • 05createSelectorCreator、lruMemoize、weakMapMemoizeを使ったカスタムメモ化に対応しています。
  • 06不安定な入力セレクターやidentity関数である結果関数を検出する、開発時専用のチェック機能を備えています。

ユースケース

  • Redux stateからフィルタリングや集計を行ったデータを導出し、重複して保存せずに利用する。
  • 不要な再レンダリングを避けながら、React-Reduxを通じてReactコンポーネントにpropsを渡す。
  • 小さなstateクエリを合成し、より大きな導出ビューを作る階層型セレクターを構築する。
  • Redux以外のプレーンなJavaScriptのイミュータブルデータにも、メモ化した導出stateを適用する。

クイックスタート

  1. 1

    npmでスタンドアロンパッケージをインストールします

    npm install reselect
  2. 2

    または、Reselectがすでに含まれているRedux Toolkitを使用します(追加のインストールは不要です)

トピック

よくある質問

reselect とは?
ReduxなどのプレーンなJavaScriptのstateからデータを導出する、メモ化セレクター関数を作成するTypeScriptライブラリです。 Reselectは、メモ化された「セレクター」関数を作成するcreateSelectorを提供します。stateから値を取り出す1つ以上の入力セレクターと、それらの値から導出値を計算する結果関数を渡します。出力セレクターは、取り出した値が変化した場合にのみ再計算され、何も変わっていなければ同じ参照を返します。
reselect は無料で使えますか?ライセンスは?
reselect は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
reselect は今もメンテナンスされていますか?
活発にメンテナンス中。reselect の最終コミットは 2026年10月21日 です。
reselect は何に使えますか?
Redux stateからフィルタリングや集計を行ったデータを導出し、重複して保存せずに利用する。 不要な再レンダリングを避けながら、React-Reduxを通じてReactコンポーネントにpropsを渡す。 小さなstateクエリを合成し、より大きな導出ビューを作る階層型セレクターを構築する。 Redux以外のプレーンなJavaScriptのイミュータブルデータにも、メモ化した導出stateを適用する。
reselect のインストール方法は?
npmでスタンドアロンパッケージをインストールします: npm install reselect または、Reselectがすでに含まれているRedux Toolkitを使用します(追加のインストールは不要です)
reselect はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/reduxjs/reselect

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト