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'));

成功存入緩存

在這裏插入圖片描述
在這裏插入圖片描述

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