zoukankan      html  css  js  c++  java
  • React Native

    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')
    }
    })
    }

  • 相关阅读:
    mysql优化---订单查询优化(1):视图优化+索引创建
    docker系列(一):docker基础与安装笔记
    Linux进程管理
    scrapy-redis源码解读之发送POST请求
    anaconda虚拟环境管理,从此Python版本不用愁
    Ubuntu18.04安装mongodb
    Python开发之日志记录模块:logging
    Git学习笔记:基础篇
    python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm
    Python开发之序列化与反序列化:pickle、json模块使用详解
  • 原文地址:https://www.cnblogs.com/cui-cui/p/8482479.html
Copyright © 2011-2022 走看看