zoukankan      html  css  js  c++  java
  • react-native AsyncStorage 数据持久化方案

    1,AsyncStorage介绍

    • AsyncStorage 是一个简单的、异步的、持久化的 Key-Value 存储系统,它对于 App 来说是全局性的。它用来代替 LocalStorage。
    • 由于它的操作是全局的,官方建议我们最好针对 AsyncStorage 进行一下抽象的封装再使用,而且不是直接拿 AsyncStorage 进行使用。
    • AsyncStorage 存储的位置根据系统的不同而有所差异。iOS 中的存储类似于 NSUserDefault,通过 plist 文件存放在设备中。Android 中会存储在 RocksDB 或者 SQLite 中,取决于你使用哪个。

    2,常用接口

    根据键来获取值,获取的结果会放在回调函数中:

    static getItem(key: string, callback:(error, result))

    根据键来设置值:

    static setItem(key: string, value: string, callback:(error))

    根据键来移除项:

    static removeItem(key: string, callback:(error))

    获取所有的键:

    static getAllKeys(callback:(error, keys))

    设置多项,其中 keyValuePairs 是字符串的二维数组,比如:[['k1', 'val1'], ['k2', 'val2']]:

    static multiSet(keyValuePairs, callback:(errors))

    获取多项,其中 keys 是字符串数组,比如:['k1', 'k2']:

    static multiGet(keys, callback:(errors, result))

    删除多项,其中 keys 是字符串数组,比如:['k1', 'k2']:

    static multiRemove(keys, callback:(errors))

    清除所有的项目:

    static clear(callback:(error))

    3,注意事项

    需要注意的是,在使用AsyncStorage的时候,setItem里面传入的数组或字典等对象需要使用JSON.stringtify()方法把他们解析成JSON字符串,反过来,在getItem方法里获取数组或字典等对象的时候需要使用JSON.parse方法将他们解析成对象。使用方法如下:

    module.exports = {
      /**保存信息*/
      save(key, value) {
        return AsyncStorage.setItem(key, JSON.stringify(value));
      },
      /**取数据*/
      getValue(key, callback) {
        return AsyncStorage.getItem(key).then((value) => {
          const jsonValue = JSON.parse(value);
          callback(jsonValue);
          return jsonValue;
        });
      },
      /**删除信息*/
      delete(key) {
        return AsyncStorage.removeItem(key);
      },
    };

    调用方法如下:

    saveData(){
      let name= getValue('name',(n)=>{
        if (n!=undefined) {
          showMsg(n);
          delete('name');
          save('name','wang')
        }else{
          showMsg('没有数据');
          save('name','li')
        }
      })
    }

    .

  • 相关阅读:
    Object-c 基础总结
    OpenCV学习(一)
    写在工作与创业间的随笔
    ASP.NET MVC5学习笔记之Action参数模型绑定之模型元数据和元数据提供
    ASP.NET MVC5学习笔记之Action参数模型绑定值提供体系
    ASP.NET MVC5学习笔记之Action参数模型绑定基本过程
    ASP.NET MVC5学习笔记之Filter提供体系
    ASP.NET MVC5学习笔记之Filter基本介绍
    ASP.NET MVC5学习笔记之Controller执行ControllerDescriptor和ActionDescriptor
    ASP.NET MVC5学习笔记之Controller同步执行架构分析
  • 原文地址:https://www.cnblogs.com/crazycode2/p/9382101.html
Copyright © 2011-2022 走看看