uniApp缓存

uniApp中内置缓存机制

在H5页面,缓存到LocalStorage中,小程序缓存到Storage

封装storage.js

复制代码
/**
 * 判断字符串是否是json字符串
 * 判断条件 1. 排除null可能性 
           2. 确保数据是对象或数组
 * @param str  数据
 * @returns Boolean
 */
const isJsonString = str => { // 判断字符串是否是json字符串
    try {
        const toObj = JSON.parse(str);
        if (toObj && typeof toObj === 'object') {
            return true
        }
    } catch {}
    return false
}

export default {
    set(name, value) {
        if (value && typeof value == 'object') { //设置json缓存数据
            uni.setStorageSync(name, JSON.stringify(value));
        } else { //设置缓存数据
            uni.setStorageSync(name, value);
        }
    },
    get(name) { //获取缓存数据
        var data = uni.getStorageSync(name);
        if (data) {
            if (isJsonString(data)) { //json字符串转对象
                return JSON.parse(data);
            }
            return data;
        }
        return null;
    },
    remove(name) { // 清除某项缓存
        uni.removeStorageSync(name);
    },
    clear() { // 清空缓存
        uni.clearStorageSync();
    }
}
复制代码

引入模块 main.js

import storage from '@/static/js/storage.js';
Vue.prototype.storage=storage;  

在页面使用

复制代码
this.storage.set('name','12312312');  // 缓存字符串
var obj = {name:'asd',type:'1'}
this.storage.set('nameobj',obj) //缓存对象

console.log(this.storage.get('name'))   //12312312
console.log(this.storage.get('nameobj'))  //{name:'asd',type:'1'}

this.storage.remove('name') //清除缓存name
this.storage.clear()  //清除所有缓存
复制代码

 

posted @   时光独醒  阅读(1676)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示