项目中依赖版本
"react-redux": "^8.0.5",
"@reduxjs/toolkit": "^1.9.1",
"redux-persist": "^6.0.0",
默认玩法
import { configureStore } from '@reduxjs/toolkit'
import { userSlice } from './slices/user';
import { fuseImSlice } from './slices/fuseIm';
const store = configureStore({
reducer: {
user: userSlice.reducer,
fuseIm: fuseImSlice.reducer,
},
devTools: true,
});
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
export default store;
加入redux-persist后
import { configureStore } from '@reduxjs/toolkit'
import { combineReducers } from 'redux'
import { userSlice } from './slices/user';
import { fuseImSlice } from './slices/fuseIm';
import { persistReducer, persistStore } from 'redux-persist'
import storage from 'redux-persist/es/storage'
const persistConfig = {
key: 'root',
storage,
blacklist: ['fuseIm']
}
const reducers = combineReducers({
user: userSlice.reducer,
fuseIm: fuseImSlice.reducer,
})
const persistedReducer = persistReducer(persistConfig, reducers)
const store = configureStore({
reducer: persistedReducer,
middleware: getDefaultMiddleware =>
getDefaultMiddleware({
serializableCheck: false,
}),
})
export const persist = persistStore(store);
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
export default store;