react如何在刷新页面时,Redux里面的值丢失问题

简介: react如何在刷新页面时,Redux里面的值丢失问题

在使用redux中发现,当我们刷新页面之后,store中的状态会消失。但是在某些时候可能不仅需要用到sotre来管理各种状态,还需要store里的数据能一直保存,就像缓存一样。redux-persist可以让你的数据从state分离出来,保存到浏览器缓存中,以便实现数据的持久化存储


一、下载依赖


npm install redux-persist--save


二、然后修改store的入口文件


import {createStore, applyMiddleware} from 'redux'
import mainReducers from "./reduces";
import thunk from "redux-thunk";
引入我们需要的方法
import {persistStore, persistReducer} from 'redux-persist'
import storage from 'redux-persist/lib/storage'
const persistConfig = {
    key: 'root',
    storage: storage,
}
persistConfig 对象还可以设置黑名单白名单,就是不需要永久保存的数据。
const myPersistReducer = persistReducer(persistConfig, mainReducers)
const store = createStore(myPersistReducer, applyMiddleware(thunk))
export const persistor = persistStore(store)
export default store


三、最后在react的入口文件中设置如下


// import api from './api'
import React, { Component } from 'react'
import {
  BrowserRouter,
  Route,
  Redirect
} from 'react-router-dom'
import { Provider } from "react-redux";
//引入PersistGate标签,和persistor
import { PersistGate } from "redux-persist/lib/integration/react";
import store from "./store/index";
import { persistor } from "./store";
import routes from './Router'
import requireLogin from './requireLogin'
import Login from './pages/admin/login'
class App extends Component {
  render() {
    return (
       <Provider store={store}>
        <BrowserRouter>
          <PersistGate loading={null} persistor={persistor}>
            <div>
            <Route exact path="/" render={() => <Redirect to="/web/index" push />} />
            <Route path='/login' component={Login} />
            {routes.map((route, i) => (
              <Route
              key={i}
              path={route.path}
              component={
                route.path.includes('/admin')
                ? requireLogin(route.component)
                : route.component
              }
            />
            ))}
            </div>
          </PersistGate>
        </BrowserRouter>
      </Provider>
    );
  }
}
export default App;


相关文章
|
4月前
|
前端开发 JavaScript 测试技术
从零开始搭建react+typescript+antd+redux+less+vw自适应项目
从零开始搭建react+typescript+antd+redux+less+vw自适应项目
135 0
|
30天前
|
存储 JavaScript 前端开发
React中使用redux
React中使用redux
127 56
|
23天前
|
存储 JavaScript 前端开发
react redux 实现原理
【8月更文挑战第29天】react redux 实现原理
17 4
|
20天前
|
前端开发 Java UED
瞬间变身高手!JSF 与 Ajax 强强联手,打造极致用户体验的富客户端应用,让你的应用焕然一新!
【8月更文挑战第31天】JavaServer Faces (JSF) 是 Java EE 标准的一部分,常用于构建企业级 Web 应用。传统 JSF 应用采用全页面刷新方式,可能影响用户体验。通过集成 Ajax 技术,可以显著提升应用的响应速度和交互性。本文详细介绍如何在 JSF 应用中使用 Ajax 构建富客户端应用,并通过具体示例展示 Ajax 在 JSF 中的应用。首先,确保安装 JDK 和支持 Java EE 的应用服务器(如 Apache Tomcat 或 WildFly)。
27 0
|
20天前
|
存储 JavaScript 前端开发
探索React状态管理:Redux的严格与功能、MobX的简洁与直观、Context API的原生与易用——详细对比及应用案例分析
【8月更文挑战第31天】在React开发中,状态管理对于构建大型应用至关重要。本文将探讨三种主流状态管理方案:Redux、MobX和Context API。Redux采用单一存储模型,提供预测性状态更新;MobX利用装饰器语法,使状态修改更直观;Context API则允许跨组件状态共享,无需第三方库。每种方案各具特色,适用于不同场景,选择合适的工具能让React应用更加高效有序。
32 0
|
1月前
|
存储 JavaScript 前端开发
"探索Redux的Vuex化:如何在React世界中享受Vue状态管理的优雅与强大"
【8月更文挑战第21天】在现代前端开发中,状态管理至关重要。Vuex作为Vue.js的状态管理库,通过集中式存储和严格规则确保状态变更的追踪。Redux则以其在React生态中的可预测性和灵活性著称。两者都强调单一数据源、状态只读及使用纯函数变更状态。尽管API设计不同,理解Redux的核心概念——单一数据源(`store`)、状态只读与纯函数变更(`reducers`),并参考Vuex的`state`、`mutations`等,能帮助开发者快速掌握Redux,高效管理应用状态。
15 0
|
1月前
|
JavaScript 前端开发 安全
|
2月前
|
Web App开发 JavaScript 前端开发
react18【系列实用教程】搭建开发环境(2024版)Vite+React (官方推荐)(含@配置,react-developer-tools 和 Redux DevTools 下载安装)
react18【系列实用教程】搭建开发环境(2024版)Vite+React (官方推荐)(含@配置,react-developer-tools 和 Redux DevTools 下载安装)
182 0
|
4月前
|
存储 JavaScript 前端开发
基于React和Redux的待办事项列表应用
基于React和Redux的待办事项列表应用
52 0
|
4月前
|
JavaScript 前端开发 搜索推荐
构建一个基于React和Redux的简易电商购物车应用
构建一个基于React和Redux的简易电商购物车应用
53 0

热门文章

最新文章