Repolode
endograph

endograph/redux-persist

为 Redux 状态提供持久化与恢复,应用启动时自动把已保存的状态加载回 store。

Star
12,950
Fork
839
未关闭 Issue
1
最近提交
14天前

这是什么?

redux-persist 会在 Redux store 状态变化时把它写入存储,应用启动时再将其恢复到 store 中,让用户数据在页面刷新或应用重启后保留。使用方式很简单:用 persistReducer 包装根 reducer,再通过 persistStore 创建 persistor,应用其他部分无需改动,Redux Toolkit 也无需额外配置。

存储后端可以替换。Web 端内置 localStorage 和 sessionStorage,也可以通过存储引擎接入 AsyncStorage、IndexedDB、文件系统等。开发者可以用 allowlist 和 denylist 选择需要保存的顶层字段,也可以嵌套使用持久化 reducer 实现更细粒度的控制,并在读写时对状态做转换。

库还支持状态版本管理,数据结构变化时可通过迁移升级已存储的数据。React 绑定提供 PersistGate 和 useRehydrated,用于在存储状态加载完成前延迟渲染。

核心功能

  • 01通过 persistReducer 包装根 reducer,用 persistStore 创建 persistor。
  • 02内置 localStorage 和 sessionStorage,并可接入 AsyncStorage、IndexedDB 等其他存储。
  • 03支持用 allowlist、denylist 或过滤函数选择需要保存的字段。
  • 04支持嵌套持久化、状态转换和版本迁移。
  • 05提供 PersistGate 和 useRehydrated,便于在 React 中等待状态恢复完成。

适用场景

  • 在 React 应用中,刷新页面后保留用户偏好或登录相关状态。
  • 在使用 AsyncStorage 的 React Native 应用中持久化 Redux 状态。
  • 在使用 IndexedDB 或文件系统的 PWA、桌面应用中离线保存状态。
  • 版本更新导致 Redux 切片结构变化时,安全地迁移已存储的数据。

快速上手

  1. 1

    从 npm 安装该包

    npm install redux-persist
  2. 2

    在 store 文件中用 persistReducer 包装根 reducer,并用 persistStore 创建 persistor

  3. 3

    用 redux-persist/react 中的 PersistGate 包裹根组件(可选,适用于 React)

使用前须知

  • v7 需要 Redux 5 或 Redux Toolkit 2。
  • v7 目前处于测试版(需使用 next 标签安装)。

标签

常见问题

redux-persist 是什么?
为 Redux 状态提供持久化与恢复,应用启动时自动把已保存的状态加载回 store。 redux-persist 会在 Redux store 状态变化时把它写入存储,应用启动时再将其恢复到 store 中,让用户数据在页面刷新或应用重启后保留。使用方式很简单:用 persistReducer 包装根 reducer,再通过 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 切片结构变化时,安全地迁移已存储的数据。
redux-persist 怎么安装和运行?
从 npm 安装该包: npm install redux-persist 在 store 文件中用 persistReducer 包装根 reducer,并用 persistStore 创建 persistor 用 redux-persist/react 中的 PersistGate 包裹根组件(可选,适用于 React)
在哪里获取 redux-persist?
源代码和安装说明在 GitHub 上:https://github.com/endograph/redux-persist

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目