用于调试 React 和 React Native 应用的桌面工具,可查看状态、网络请求、日志和错误。
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
从 npm 安装该包
npm install redux-persist - 2
在 store 文件中用 persistReducer 包装根 reducer,并用 persistStore 创建 persistor
- 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 数据每日更新。
相关项目
一个用于可预测、可维护的全局状态管理的 JavaScript 库,可与 React 或其他视图库搭配使用。
一个基于 Hook 的轻量 React 状态管理库,无需包裹 Provider。
一个 JavaScript 库,让你通过修改当前状态的草稿来生成新的不可变状态。
Redux 官方的 React 绑定库,通过 Provider 和 Hooks 将 Redux 状态连接到 React 组件。
一个用于创建记忆化 selector 函数的 TypeScript 库,常配合 Redux 从状态中派生数据。