redux利用redux-persist实现数据持久化

我们在使用redux的过程中会出现页面刷新redux中数据丢失的情况,我们有时候就会用到localstorage,sessionstorage等,但是我们都用了redux,应该尽量避免使用这两个。

这里推荐使用redux-persist,他会将你state中的数据放入缓存,保持数据持久化:
首先下载包:
在这里插入图片描述
在store中使用

// 引入createStore

import reducer from './../reducer'
import { createStore } from 'redux'
import { devToolsEnhancer } from 'redux-devtools-extension';//redux调试工具
//  存储机制,可换localStorage等,当前使用sessionStorage
import {persistStore, persistReducer} from 'redux-persist';
import storageSession from 'redux-persist/lib/storage/session'


const storageConfig = {
    key: 'root', 
    storage:storageSession, // 缓存机制
//blacklist: ['name','age'] // reducer 里不持久化的数据,除此外均为持久化数据
}

const myPersistReducer = persistReducer(storageConfig, reducer); //persist包装reducer
const configureStore = createStore(myPersistReducer,devToolsEnhancer());
export const persistor = persistStore(configureStore);
export default configureStore;//返回store

去index.js中用PersistGate包住根组件就可以使用了

import {PersistGate} from 'redux-persist/lib/integration/react';
import {persistor} from './redux/store';

ReactDOM.render(
    <Provider store={store}>
        <PersistGate loading={null} persistor={persistor}>
            <Route />
        </PersistGate>
    </Provider>    
    , document.getElementById('root'));

成功存入缓存

在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章