美文网首页RN
RN本地存储总结

RN本地存储总结

作者: 哪吒闹海全靠浪 | 来源:发表于2017-06-30 12:31 被阅读659次

最近在调研RN的本地存储,发现目前RN的本地存储大多数最终调的都是端的sqlite(ios上可能区分大小文件使用不同存储系统),只是根据不用的封装有几个典型的库:

1.AsyncStorage

官方文档里推荐使用的存储方案。提供的是一个简单的、异步的、持久化的Key-Value存储系统。
优点:

  • (1)使用简单,常用的API同localstorage;
  • (2)异步机制,带了成功失败回调,方便向业务靠拢;
  • (3)目前有一个不错的,对存储条数、过期时间等做了封装。

存在问题:

  • (1)Key-Value存储系统不好应对复杂数据处理(所以要考虑好需要存储的内容);
  • (2)存储上限的问题。
    这是一篇react-native讨论存储上限的 issues,目前Android默认的上限是6M,看源码,我们发现可以通过重写setMaximumSize的方式来扩大上限,代码类似如下:
long size = 50L * 1024L * 1024L; // 50 MB 
com.facebook.react.modules.storage.ReactDatabaseSupplier.getInstance(getApplicationContext()).setMaximumSize(size);`

IOS上的存储是区分大小的,官方是这么说的

AsyncStorage is backed by native code that stores small values in a serialized dictionary and larger values in separate files.

stackoverflow找到,好像上限是2G。这样似乎存储比想象中大,另外我也给之前提到react-native-storage库的作者提了上限防爆机制的issues,加之我们在使用上注意,这一点暂时可以放心。

2.react-native-sqlite-storage

react-native-sqlite-storage是对端的sqlite封装,api设计上最接近sqlite,接入需要引入模块,使用场景:需要复杂大量数据的处理

3.Realm

Realm是一个适应多平台,功能强大的数据库,它也支持React Native。Realm底层既不使用sqlite也不使用coredata,它有一套自己的数据库存储引擎,官方说在性能上也高于sqlite和coredata很多,而且api更偏向nosql,比起sqlite的方式简单。确定就是有一定的学习陈本,扩展性不高,只支持IOS8+。

4.总结

在项目前期,AsyncStorage已经能很好的满足需求,并且简单、易扩展,建议使用。等到遇到瓶颈时,再考虑是否接入其它两种。

相关文章

  • RN本地存储总结

    最近在调研RN的本地存储,发现目前RN的本地存储大多数最终调的都是端的sqlite(ios上可能区分大小文件使用不...

  • ReactNative之AsyncStorage本地存储

    ReactNative之本地存储 在RN开发中,持久化存储数据,可以使用AsyncStorage,对原生的API进...

  • 本地存储总结

    cookies,sessionStorage和localStorage的区别 三者均是存储在客户端 cookies...

  • React Native 数据存储

    RN使用AsyncStore将数据存储到本地,AsyncStorage是一个基于key-value键值对的异步持久...

  • RN笔记-数据存储与读取

    RN使用AsyncStore将数据存储到本地,AsyncStorage是一个基于key-value键值对的异步持久...

  • reactnative 数据持久化(一)

    rn 数据持久化 数据持久化 data 》 手机存储空间 rn rn中比较常用的数据持久化存储方式有两种: Asy...

  • 从本地打bundle的方式来显示我们的react native页

    本篇文章主要介绍Android项目是如何加载本地的RN页面,本地的RN页面这个概念有点类似于本地HTML静态网页,...

  • iOS 本地化存储

    简介 iOS中常常会用到本地化存储,下面就总结一下常用的几种本地化存储方式 1. iOS数据存储的几种方式 Pre...

  • localStorage和sessionStorage

    *示例 localStorage 设置本地存储 读取本地存储 清除本地存储 key()方法 说明:在不知道本地存储...

  • react-native 3 数据存储

    数据存储是开发APP必不可少的一部分,比如页面缓存,从网络上获取数据的本地持久化等,那么在RN中如何进行数据存储呢...

网友评论

    本文标题:RN本地存储总结

    本文链接:https://www.haomeiwen.com/subject/fwpbcxtx.html