React Native 一站式解决方案(一)AsyncStorage
react-native-easy-app 是一款为 React Native App 快速开发提供基础服务的纯 JS 库(支持 IOS & Android),特别是在从 0 到 1 的项目搭建初期,至少可以为开发者减少 30%的工作量。
react-native-easy-app 主要做了这些工作:
1. 对 AsyncStorage 进行封装,开发者只需几行代码即可实现一个持久化数据管理器。
2. 对 fetch 进行封装,使得开发者只需关注当前 App 的前后台交互逻辑和协议,定义好参数设置及解析逻辑即可。
3. 重新封装了 RN 的 View 、Text 、Image 、FlatList 使用得这些控件在适当的时候支持事件或支持 icon 与文本,能有效减少布局中的嵌套逻辑。
4. 通过设置一个屏幕参考尺寸,重置 XView 、XText 、XImage 的尺寸,实现自动多屏适配
可能有人觉得,RN 的 AsyncStorage 本身就很简单,自己封装也就几十行代码的工作量,为什么还要使用第三方库?
一千个人心中,有一千个哈姆雷特,也许我的封装思路能给你带来不一样的启发也未可知呢?
数据存储( AsyncStorage )
RN 平台提供的 AsyncStorage 有一些基础方法:setItem,getItem,removeItem,getAllKeys,这些是 promise 模式的并且 AsyncStorage 只支持对纯字符串的存取,因此我们不便于直接在代码中去直接调用这些方法,我们得对 AsyncStorage 做一次封装,怎样封装能使我们更方便快捷的访问本地存取呢?
我们来看下通过 react-native-easy-app 库的 XStorage,我们可以怎样访问 AsyncStorage:
1 、核心代码实现
import { XStorage } from 'react-native-easy-app'; let RNStorage = { // 自定义对象 hasLogin: undefined, customerId: undefined, userInfo: undefined }; XStorage.initStorage(RNStorage, () => { // 初始化自定义数据管理器 RNStorage.customerId = '123456'; RNStorage.hasLogin = true; RNStorage.userInfo = {name: 'zhangsan', age: 30}; console.log(JSON.stringify(RNStorage)) // 打印数据管理器的内容 })
执行完上面的代码后我们看看控制台输出: 
再通过 Root Explorer 查看一下当前 App 的 data/data/{package}/database 下数据表的内容: 
**