目录
目录
2.5使用key和id来保存数据,一般是保存同类别(key)的大量数据。
yarn add react-native-storage2.3引入react-native-storage库
2.5使用key和id来保存数据,一般是保存同类别(key)的大量数据。
1.数据本地存储介绍
数据本地存储主要将数据存储到本地,存储的方式可以有多种,在类似用户登录场景下,我们希望网络断开或者下次进入应用时不用每次都填写用户名密码,我们通常会将用户名密码或者身份证明Token存储在本地;在React Native中常用两种数据存储方式:
a.AsyncStorage
AsyncStorage是一个简单的、异步的、持久化的 Key-Value 存储系统,它对于 App 来说是全局性的。可用来代替 LocalStorage。
各平台具体实现形式:在 iOS 上,AsyncStorage在原生端的实现是把较小值存放在序列化的字典中,而把较大值写入单独的文件。在 Android 上,AsyncStorage会尝试使用RocksDB,或退而选择 SQLite。
react-native-storage:通常会借用第三方react-native-storage对AsyncStorage进行封装,而不是直接使用AsyncStorage;
b.Realm
新的数据库存储框架,类似SQLite;
Realm平台是基于NoSQL的服务器和客户端组件的组合,通过快速高效的同步协议连接,以实现实时、连接的应用程序和服务,这些应用程序和服务响应迅速,性能不受网络状态的影响。领域平台有两个主要组件:领域数据库(Realm Database)和领域对象服务器(Realm Object Server)。这两个组件协同工作,可以自动同步数据,从而实现大量的用例,从离线的第一个应用程序、现场服务和数据收集应用程序、数据可用性和用户响应性是关键的移动服务。此外,通过与现有后端(SQL、Kafka等)的集成能力,Realm平台是在利用现有(有时是遗留)系统和数据源的同时,构建现代实时服务体验的极好方式。
注意:简单的key-value数据存储方式使用AsyncStorage实现,数据量较大使用Realm;
2.AsyncStorage使用
2.1react-native-storage
react-native-storage这是一个本地持久存储的封装,可以同时支持 react-native(AsyncStorage)和浏览器(localStorage)。ES6 语法,promise 异步读取,使用 jest 进行了完整的单元测试。
2.2添加库几种方式
a.在RN工程中找到package.json文件,在dependencies标签下添加react-native-storage库,我使用的WebStorm添加时会自动库的版本
"dependencies": {
"react": "16.6.0-alpha.8af6728",
"react-native": "0.57.4",
"react-native-modal": "^6.5.0",
"react-native-storage": "^0.2.3",
}
WebStorm右下角会自动提示run npm...点击会自动安装