使用redux-persist解决redux数据刷新丢失问题

简介: 使用redux-persist解决redux数据刷新丢失问题
  • 在React项目实际开发中,我们常常会对一些数据进行存储缓存中,防止用户刷新浏览器,数据丢失问题,比如token,用户信息之类的。之前都是手写一遍localStorage和sessionStorage储存,接来下,我们通过一个插件redux-persist配置项,来存储数据。

存储数据配置

  • 首先安装 redux-persist插件
cnpm install redux-persist
  • store文件配置
  • 本地存储 import storage from 'redux-persist/lib/storage
  • 会话存储 import storageSession from 'redux-persist/lib/storage/session
  • 其中blacklist设置哪些数据不需要存储,因为在项目中,有些数据是没有必要存储的
import { createStore,combineReducers,applyMiddleware,compose } from 'redux'

import { persistStore, persistReducer } from 'redux-persist'
import storage from "redux-persist/lib/storage"; //本地存储

import language from './language/languageReducer'

// 创建reducer对象
const allReducer = {
    language
}
// 缓存数据配置
const persistConfig = {
    key: "root",
    storage,
    whitelist: ["language"], //需要缓存的数据
    blacklist:[], //不需要缓存的数据
}
// 合并
const rootReducer  = combineReducers(allReducer)
const persistedReducer = persistReducer(persistConfig, rootReducer)
// 调试redux
const store = createStore(persistedReducer,compose(window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()))

export const persistor = persistStore(store)
export default store

使用PersistGate包装您的根组件

  • 引入插件和store配置文件
import store, {persistor} from './redux/store'

import { PersistGate } from "redux-persist/integration/react";
  • 配置
ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
      <PersistGate persistor={persistor}>
        <App /> 
      </PersistGate>
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);
  • 以上就是在redux解决数据丢失问题
  • 如果想看react中英文切换,移步到 点击跳转: link.
目录
相关文章
|
存储 前端开发
react-几步搞定redux-persist-持久化存储
其实在vuex-persist持久化,用的也是这个东西 这个东西 就是持久化,其实所谓的持久化,在前端而言,一般都是指存储到 localStorage里面,因为刷新也还在嘛,不像存在其他地方刷新就没了,这里不讨论存储到本地文件 我们在react再玩一遍,看看有啥不同,找点新鲜感
1124 0
react-几步搞定redux-persist-持久化存储
|
存储 API
vuex-7-persist-持久化存储
1.持久化存储一直都是开发过程中经常遇到的场景 2.这个自己写下逻辑,其实在react-persist中写过 3.大体的原理就是把存储vuex里面的状态可以存储到 localstorage一份,因为localstorage刷新后数据还是在的,比如token的存储
536 0
vuex-7-persist-持久化存储
|
5月前
|
存储 JavaScript 前端开发
深入理解Redux状态的保留
【8月更文挑战第20天】
61 2
|
7月前
|
存储 前端开发 数据库
Vuex数据刷新丢失如何处理
Vuex数据刷新丢失如何处理
71 4
|
6月前
|
小程序 API
6. 小程序端的 Pinia 持久化
6. 小程序端的 Pinia 持久化
110 0
|
8月前
|
存储 JavaScript
vuex怎么防止数据刷新丢失?
vuex怎么防止数据刷新丢失?
48 1
|
前端开发 JavaScript
React 中 setState 什么时候是同步的,什么时候是异步的
React 中 setState 什么时候是同步的,什么时候是异步的
154 0
|
前端开发 JavaScript
react的setState是异步还是同步
react的setState是异步还是同步
|
存储 缓存 JavaScript
vue数据刷新丢失如何解决?
vue数据刷新丢失如何解决?