React Native之数据存储技术AsyncStorage
1. 如何将数据存储到本地?
数据存储是开发APP必不可少的一部分,比如页面缓存,从网络上获取数据的本地持久化等,那么在RN中如何进行数据存储呢?
RN官方推荐我们在RN中使用AsyncStorage进行数据存储
2. 什么是AsyncStorage?
2.1 特点
- 简单的,异步的,持久化的key-value存储系统
- AsyncStorage也是React Native官方推荐的数据存储方式,旨在代替LocalStorage
2.2 AsyncStorage在ios中存储的两种情况
- 如果存储的内容较小,那么AsyncStorage会将存储的内容放在一个序列化的字典中
- 如果存储的内容较大,那么AsyncStorage会将存储的内容放在一个单独的文件中
2.3 AsyncStorage在android中存储也分为两种情况:
- AsyncStorage会将数据存储在RocksDB或者SQLite中,具体存在RocksDB中还是SQLite中这取决于设备支持哪一种存储方式。
3. 如何使用AsyncStorage?
首先导入AsyncStorage作为RN一个标准组件使用
import AsyncStorage from '@react-native-community/async-storage';
//import { AsyncStorage } from 'react-native';
在最新的react-native版本中已经将AsyncStorage分离出去了,然后在android上需要手动link一下,具体参照我写的一篇关于link的文章点击查看手动link教程
3.1 存储数据
/**
* 存储数据
*
* @memberof AsyncStorageDemoPage
*/
async doSave() {
// 用法一
AsyncStorage.setItem(KEY, this.value, err => {
err && console.log(err.toString());
})
// 用法二
AsyncStorage.setItem(KEY, this.value)
.catch(err => {
err && console.log(err.toString());
})
// 用法三
try {
await AsyncStorage.setItem(KEY, this.value)
} catch (err) {
err && console.log(err.toString());
}
}
3.2 获取数据
/**
* 获取数据
*
* @memberof AsyncStorageDemoPage
*/
async getData() {
// 用法一
AsyncStorage.getItem(KEY, (err, value) => {
this.setState({
showText: value
});
console.log(value);
err && console.log(err.toString());
})
// 用法二
AsyncStorage.getItem(KEY)
.then(value => {
this.setState({
showText: value
})
})
.catch(err => {
err && console.log(err.toString());
})
// 用法三
try {
const value = AsyncStorage.getItem(KEY);
this.setState({
showText: value
});
} catch (err) {
err && console.log(err.toString());
}
}
3.3 移除数据
/**
* 移除数据
*
* @memberof AsyncStorageDemoPage
*/
async doRemove() {
// 用法一
AsyncStorage.removeItem(KEY, err => {
err && console.log(err.toString());
})
// 用法二
AsyncStorage.removeItem(KEY)
.catch(err => {
err && console.log(err.toString());
})
// 用法三
try {
await AsyncStorage.removeItem(KEY);
} catch(err) {
err && console.log(err.toString());
}
}
3.4 AsyncSorage常用API
React Native之数据存储技术AsyncStorage的更多相关文章
- React Native之持久化存储(AsyncStorage、react-native-storage)的使用
AsyncStorage是一个简单的.异步的.持久化的Key-Value存储系统,它对于App来说是全局性的.这是官网上对它的介绍.可以知道,这个asyncstorage也是以键值对的形式进行存储数据 ...
- Android实现数据存储技术
转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...
- Android数据存储技术
Android提供了4种数据存储技术,分别是SharedPreferences.Files.SQLite数据库和网络存储数据.(有的开发者认为使用ContentProvider也可以算是一种,但我觉得 ...
- 安卓开发_数据存储技术_sqlite
一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...
- 安卓开发_数据存储技术_SharedPreferences类
SharedPreferences类 供开发人员保存和获取基本数据类型的键值对. 该类主要用于基本类型,例如:booleans,ints,longs,strings.在应用程序结束后,数据仍旧会保存. ...
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技 ...
- React Native 之 数据持久化
前言 因为 实战项目系列 涉及到数据持久化,这边就来补充一下. 如本文有错或理解偏差欢迎联系我,会尽快改正更新! 如有什么问题,也可直接通过邮箱 277511806@qq.com 联系我. demo链 ...
- 【Cocos2d-x游戏开发】Cocos2d-x中的数据存储技术
一.引言 数据存储和网络功能可以说是一款游戏中必不可少的功能,如果一款游戏不能保存进度那么它的可玩性必然大打折扣(试想一下,玩家辛辛苦苦玩了一整天的游戏,结果退出时告诉人家不能保存关卡信息,你明天还得 ...
- 详解Android数据存储技术
前言 学习Android相关知识,数据存储是其中的重点之一,如果不了解数据,那么让你跟一款没有数据的应用玩,你能玩多久呢?答案是这和没有手机几乎是差不多的.我们聊QQ,聊微信,看新闻,刷朋友圈等都是看 ...
随机推荐
- 二、Kafka基础实战:消费者和生产者实例
一.Kafka消费者编程模型 1.分区消费模型 分区消费伪代码描述 main() 获取分区的size for index =0 to size create thread(or process) co ...
- idea插件安装的通用操作
序:今天下午看到一个bug,很神奇,粘出来大家看看 看到这个异常栈,有经验的或者查到的答案都是mapper.xml中哪个的方法配置错了,应替换parameterMap为parameterType, 奇 ...
- 基本控件文档-UISwitch属性
CHENYILONG Blog 基本控件文档-UISwitch属性 Fullscreen UISwitch属性 技术博客http://www.cnblogs.com/ChenYilong/ 新 ...
- Nginx配置location及rewrite规则
Nginx配置location及rewrite规则 示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } loca ...
- [Openwrt 扩展下篇] Openwrt搭建私有云Owncloud 9
网上很多资料讲用Linux打造owncloud构建私有云 ,花了些时间研究了下,我将之前的需求打造成了Openwrt下的Owncloud 9.其实网上还有Seafile.大家对比来看下知乎的评论,其实 ...
- QByteArray储存二进制数据(包括结构体,自定义QT对象)
因为利用QByteArray可以很方便的利用其API对内存数据进行访问和修改, 构建数据库blob字段时必不可少; 那如何向blob内写入自定义的结构体和类 //自定义person结构体 typede ...
- 在JS数组指定位置插入元素
很多与数组有关的任务听起来很简单,但实际情况并不总是如此,而开发人员在很多时候也用不到他.最近我碰到了这样一个需求: 将一个元素插入到现有数组的特定索引处.听起来很容易和常见,但需要一点时间来研究它. ...
- 2016.5.18——leetcode:Majority Element
Majority Element 本题收获: 1.初步了解hash,nth_element的用法 2.题目的常规思路 题目: Given an array of size n, find the ma ...
- Indepence Mode 备份 weblogic
一般不在administation server 停止这个模式 管理服务器挂了,不会影响其他服务器的运行 备份一个domain copy 一个 /bin 把启动的脚本做一个修改 里面的doma ...
- 让arch阻止某个软件包的升级
我更新了eclipse-java Mars版本的,感觉特别的卡,而且还有好多bug,不知道为什么,因此我去官网下载了luna版本的eclipse的安装包,不知道怎么下载的点击这里,然后安装luna版本 ...