详解在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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
Jquery练习之表单验证实现代码
Dec 14 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
Mar 28 Javascript
仿新浪微博登陆邮箱提示效果的js代码
Aug 02 Javascript
jQuery前端分页示例分享
Feb 10 Javascript
jQuery实现鼠标划过添加和删除class的方法
Jun 26 Javascript
js命名空间写法示例
Dec 18 Javascript
基于jquery插件实现拖拽删除图片功能
Aug 27 Javascript
全面了解JS中的匿名函数
Jun 29 Javascript
谈谈JavaScript的New关键字
Aug 26 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
Nov 15 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 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数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
Vue组件开发初探
2017/02/14 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
vue2过滤器模糊查询方法
2018/09/16 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python decimal模块使用方法详解
2020/06/08 Python
pandas DataFrame运算的实现
2020/06/14 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
机械系大学毕业生推荐信
2013/11/27 职场文书
初中政治教学反思
2014/01/17 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
美术教师自我鉴定
2014/02/12 职场文书
社区党务公开实施方案
2014/03/18 职场文书
保安公司服务承诺书
2014/05/28 职场文书
校园运动会广播稿
2014/10/06 职场文书
民政局离婚协议书范本
2014/10/20 职场文书