Repolode
endograph

endograph/redux-persist

アプリの起動時にストアの状態をストレージから復元する、Reduxのミドルウェア風ライブラリです。

スター
12,950
フォーク
839
未解決の Issue
1
最終コミット
14 日前

これは何?

redux-persistは、Reduxストアの状態を変更のたびにストレージへ保存し、起動時にストアへ再ハイドレートするため、ページの再読み込みやアプリの再起動後もデータを保持できます。ルートReducerをpersistReducerでラップし、persistStoreでpersistorを作成します。それ以外のアプリ構成はそのままで、Redux Toolkitも追加設定なしで利用できます。

ストレージは差し替え可能です。Web向けにはlocalStorageとsessionStorageが組み込まれており、ストレージエンジンを使えばAsyncStorage、IndexedDB、ファイルシステムなど、ほかのバックエンドも利用できます。allowlistとdenylistで保存するトップレベルのキーを選択でき、より細かく制御するためにReducerをネストして永続化したり、状態の読み書き時に変換したりできます。

バージョン管理された状態にも対応しています。保存データの構造が変わったときはマイグレーションでデータを更新できます。また、Reactバインディングには、保存状態の読み込みが完了するまで描画を遅らせるPersistGateとuseRehydratedが含まれています。

主な機能

  • 01ルートReducerをpersistReducerでラップし、persistStoreでpersistorを作成します。
  • 02localStorageとsessionStorageに対応し、ほかのバックエンド向けに差し替え可能なストレージエンジンを提供します。
  • 03allowlist、denylist、またはフィルター関数で保存するキーを選べます。
  • 04ネストした永続化、状態変換、バージョン管理されたマイグレーションに対応します。
  • 05Reactで状態の復元が完了するまで待機するためのPersistGateとuseRehydratedを提供します。

ユースケース

  • Reactアプリで、ユーザー設定やログイン関連の状態をブラウザーの再読み込み後も保持する。
  • AsyncStorageを使うReact NativeアプリでReduxの状態を永続化する。
  • IndexedDBまたはファイルシステムを使うPWAやデスクトップアプリで、オフライン用にアプリの状態を保存する。
  • リリース間でReduxのSliceの構造が変わったとき、保存済みの状態を安全に更新する。

クイックスタート

  1. 1

    npmからパッケージをインストールします

    npm install redux-persist
  2. 2

    ストアファイルでルートリデューサーをpersistReducerでラップし、persistStoreでpersistorを作成します

  3. 3

    ルートコンポーネントをredux-persist/reactのPersistGateでラップします(任意、Reactの場合)

使う前に知っておきたいこと

  • v7にはRedux Toolkit 2またはRedux 5が必要です。
  • v7リリースはベータ版です(nextタグを指定してインストールしてください)。

トピック

よくある質問

redux-persist とは?
アプリの起動時にストアの状態をストレージから復元する、Reduxのミドルウェア風ライブラリです。 redux-persistは、Reduxストアの状態を変更のたびにストレージへ保存し、起動時にストアへ再ハイドレートするため、ページの再読み込みやアプリの再起動後もデータを保持できます。ルートReducerをpersistReducerでラップし、persistStoreでpersistorを作成します。それ以外のアプリ構成はそのままで、Redux Toolkitも追加設定なしで利用できます。
redux-persist は無料で使えますか?ライセンスは?
redux-persist は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
redux-persist は今もメンテナンスされていますか?
活発にメンテナンス中。redux-persist の最終コミットは 2026年10月7日 です。
redux-persist は何に使えますか?
Reactアプリで、ユーザー設定やログイン関連の状態をブラウザーの再読み込み後も保持する。 AsyncStorageを使うReact NativeアプリでReduxの状態を永続化する。 IndexedDBまたはファイルシステムを使うPWAやデスクトップアプリで、オフライン用にアプリの状態を保存する。 リリース間でReduxのSliceの構造が変わったとき、保存済みの状態を安全に更新する。
redux-persist のインストール方法は?
npmからパッケージをインストールします: npm install redux-persist ストアファイルでルートリデューサーをpersistReducerでラップし、persistStoreでpersistorを作成します ルートコンポーネントをredux-persist/reactのPersistGateでラップします(任意、Reactの場合)
redux-persist はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/endograph/redux-persist

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

関連プロジェクト