在React Native开发过程中,总避免不了需要存储一些数据在本地。对于大多数应用只需要存储一些结构简单的数据,如标记位,用户信息等。这时候我们首选择的存储方式就是AsyncStorage,那我们先来看下AsyncStorage给我提供了哪些基本方法:
AsyncStorage_methods.png
可以看出AsyncStorage已经包含set、get、remove、clear等一系列静态方法,基本上已经满足了我们对数据增、删、改、查(CURD 下文中我都统一使用简称)的需求。对于AsyncStorage的使用,官网建议我们再封装一层,而不是直接使用AsyncStorage。
那我们先在网上搜索一下看看大家是怎么封装AsyncStorage的。通过在网上大量的搜索与对比,我把大家的封装方式分为三类:
通过以上这几类方式的对比,发现第二种AsyncStorage封装方式的是比较合适的。在使用过程中基本也是以Key-Value的形式是存、取数据。但是如果项目中有大量的数据存、取操作时。这个Keys的维护是一个难题:
没有更好的方式去访问AsyncStorage呢?当然有,这里就要进入我们今天的主题了,【怎样一分钟实现一个AsyncStorage 访问器】,且在使用的时候也能方便,快捷的访问AsyncStorage数据。
第一步: 花 10 秒钟定义一个全局可导出的数据管理对象及需要存储的userId属性,如:
export const RNStorage = {// 持久化数据列表
userId: undefined, // 用户ID
};
第二步: 再花 20 秒的时间,在程序初始化的地方引入XStorage,并调用初始化绑定RNStroage,然后你就可以随意的访问RNStorage中的属性了。
import { XStorage } from 'react-native-easy-app';
import { AsyncStorage } from 'react-native';
XStorage.initStorage(RNStorage, AsyncStorage, () => {
// 绑定完成,现在您就可以随意访问RNStorage中的任何数据了
RNStorage.userId = '#@23DF424FGD234DKT45IU'; // 相当于AsyncStorage.setItem('userId','#@23DF424FGD234DKT45IU')
console.log('userId=' + RNStorage.userId); // 相当于console.log(await AsyncStorage.getItem('userId'))
});
第三步:
剩下20秒的时候,只需要您端起咖啡等待 react-native-easy-app 库的安装完成。
有没有很简单,花了1分钟不到的时间就构建了一个RN的AsyncStorage数据访问管理器,从此以后,如果有任何新的数据需要保存到AsyncStorage中,只需要在RNStorage对象中定义相应的属性字段即可。RNStorage的属性字段对数据的类型有 string,bool,object 等各种类型的支持。总之一句话:您可以像访问内存对象一样同步访问RNStorage里面定义的任何属性,这些属性会被自动同步到AsyncStorage中。
这样文章开头AsyncStorage的第二种封装方式的访问问题就迎刃而解了,或许你还不放心,也不懂RNStorage的实现原理,那你可以看看这篇文章:
react-native-easy-app 详解与使用之(一) AsyncStorage
有任何疑问,欢迎扫码加入RN技术QQ交流群
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。