详解在React-Native中持久化redux数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详解在React-Native中持久化redux数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1850字,纯文字阅读大概需要3分钟。
内容图文
![详解在React-Native中持久化redux数据](/upload/InfoBanner/zyjiaocheng/332/47d03f861b2343998e8cd98c5c7519ae.jpg)
在最近的一个项目中,要求对 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数据全部内容,希望文章能够帮你解决详解在React-Native中持久化redux数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。