zoukankan      html  css  js  c++  java
  • [RN] React Native 使用 AsyncStorage 存储 缓存数据

     React Native 使用 AsyncStorage 存储 缓存数据

    AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。这是官网上对它的介绍。可以知道,这个asyncstorage也是以键值对的形式进行存储数据的。   那么问题来了,该怎么使用这个呢?官网上说并不推荐我们直接用这个asyncstorage,而是进行抽象封装以后在进行调用。

    封装类 StorageUtil.js   代码如下:

    import {AsyncStorage} from 'react-native';
    
    class StorageUtil {
    
        /**
         * 获取
         * @param key
         * @returns {*|Promise<*>|PromiseLike<T | never>|Promise<T | never>}
         */
        static get(key) {
            return AsyncStorage.getItem(key).then((value) => {
                const jsonValue = JSON.parse(value);
                return jsonValue;
            });
        }
    
        /**
         * 保存
         * @param key
         * @param value
         * @returns {*}
         */
        static save(key, value) {
            return AsyncStorage.setItem(key, JSON.stringify(value));
        }
    
        /**
         * 更新
         * @param key
         * @param value
         * @returns {*}
         */
        static update(key, value) {
            return AsyncStorage.setItem(key, JSON.stringify(value));
        }
    
        /**
         * 删除
         * @param key
         * @returns {*}
         */
        static delete(key) {
            return AsyncStorage.removeItem(key);
        }
    
        /**
         * 删除所有配置数据
         * @returns {Promise<string>}
         */
        static clear() {
            return AsyncStorage.clear();
        }
    
    }
    
    export default StorageUtil;

    使用代码:

    let key = 'per';
            let person = "hello";
    
            //保存
            StorageUtil.save(key, person);
    
            //获取
            StorageUtil.get(key).then((row)=>{
                if(row){
                    console.log(row)
                }else{
                    console.log("null")
                }
    
            });
    
            //更新
            let person2 = "广州";
            StorageUtil.update(key, person2);
    
            // StorageUtil.delete(key);
    
            //清除所有
            StorageUtil.clear();
    
            StorageUtil.get(key).then((row)=>{
                if(row){
                    alert(row);
                    console.log(row)
                }else{
                    console.log("null")
                }
            });

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/10958297.html

    转载请著名出处!谢谢~~

  • 相关阅读:
    WebUpLoder 能自动预览,能多实例,包括后台demo
    ajax请求总是进入Error里
    c#_1:后台post请求
    Echarts_1:水平柱体
    Hello World!
    python正则表达式
    python web.py出现ValueError: need more than 1 value to unpack
    web.py端口被占用的错误
    github commit时出现 Please tell me who you are.以及项目名称管理
    打飞机小游戏 python+pygame
  • 原文地址:https://www.cnblogs.com/wukong1688/p/10958297.html
Copyright © 2011-2022 走看看