详解在React-Native中持久化redux数据


Posted in Javascript onMay 22, 2019

在最近的一个项目中,要求对 redux 数据做持久化处理,经过研究后成功实现,在此记录一下过程

我们可以使用 redux-persist 对数据做持久化处理

安装

npm i --save redux-persist

使用

安装成功后,我们需要对 store 代码进行修改,这是我的 store 生成文件

import {applyMiddleware, createStore, compose} from 'redux';
import {createLogger} from 'redux-logger';
import thunk from 'redux-thunk';
import reducers from '../reducers';
import {persistStore, persistReducer} from 'redux-persist';
import storage from 'redux-persist/lib/storage'

const persistConfig = {
 key: 'milk', # 对于数据 key 的定义
 storage,  # 选择的存储引擎
}

# 对 reducers 的封装处理
const persistedReducer = persistReducer(persistConfig, reducers)


let loggerMiddleware = createLogger();

export default function configureStore() {
 const enhancers = compose(
  applyMiddleware(thunk, loggerMiddleware),
 );

 # 处理后的 reducers 需要作为参数传递在 createStore 中
 const store = createStore(persistedReducer, enhancers)

 # 持久化 store
 let persistor = persistStore(store)
 
 return {store, persistor}
}

在 react-native 中,存储引擎默认为 AsyncStorage

Android是以key=>value的形式存储在本地sqlite中

iOS 是直接存沙盒文件

其中还有很多可以配置的地方,大家自行参考官方文档

修改完生成 store 代码后,在入口文件做一次修改,需要引入 PersistGate 来进行二次的组装

import React, {Component} from 'react';
import {Provider} from 'react-redux';
import HomeContainer from './container/HomeContainer'
import configureStore from './redux/store'
import {PersistGate} from 'redux-persist/integration/react' # 看这里


const {store, persistor} = configureStore();

class App extends Component {
 render() {
  return (
   <Provider store={store}>
    
    <PersistGate loading={null} persistor={persistor}>
     <HomeContainer/>
    </PersistGate>

   </Provider>
  );
 }
}

export default App

简单配置即可,我们可以看一下效果

效果

详解在React-Native中持久化redux数据

参考文档

官方文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
May 13 Javascript
Javascript保存网页为图片借助于html2canvas库实现
Sep 05 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
JS实现倒计时图文效果
Nov 17 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
vue2 中二级路由高亮问题及配置方法
Jun 10 Javascript
ES10的13个新特性示例(小结)
Sep 23 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 #Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
May 22 #Javascript
jQuery Migrate 插件用法实例详解
May 22 #jQuery
自定义Vue组件打包、发布到npm及使用教程
May 22 #Javascript
Vue中的组件及路由使用实例代码详解
May 22 #Javascript
Vue侦测相关api的实现方法
May 22 #Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 #Javascript
You might like
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
javascript some()函数用法详解
2014/11/13 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
实现JavaScript中继承的三种方式
2009/10/16 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python安装requests库的实例代码
2019/06/25 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
动员大会主持词
2014/03/20 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
催款函怎么写
2015/06/24 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers