uni-app缓存的使用

精选30+云产品,助力企业轻松上云!>>> hot3.png

up-f2af16cac565cf046af3e0ef17a8dcb3f84.png
uni.setStorage(OBJECT)

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。

OBJECT 参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key
dataAny需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

uni.setStorage({
    key: 'storage_key',// 存放内容的key, 注: key相同会进行覆盖
    data: 'hello',     // 存放的内容
    success: function () { //存放成功的回调函数
        console.log('success');
    }
});
uni.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

参数说明

参数类型必填说明
keyString本地缓存中的指定的 key
dataAny需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
try {
    //将数据存放在以存在的key上,进行覆盖
    uni.setStorageSync('storage_key', 'hello');
} catch (e) {
    // error
}
uni.getStorage(OBJECT)

从本地缓存中异步获取指定 key 对应的内容。

OBJECT 参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数,res = {data: key对应的内容}
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数类型说明
dataAnykey 对应的内容

示例

uni.getStorage({
    key: 'storage_key', //需要获取的key
    success: function (res) {//获取成功的回调
        console.log(res.data);
    }
});
uni.getStorageSync(KEY)

从本地缓存中同步获取指定 key 对应的内容。

参数说明

参数类型必填说明
keyString本地缓存中的指定的 key

示例

try {
    //需要获取的key,直接返回内容
    const value = uni.getStorageSync('storage_key');
    if (value) {//判断是否不为空
        console.log(value);
    }
} catch (e) {
    // error
}
uni.getStorageInfo(OBJECT)

异步获取当前 storage 的相关信息。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序
HBuilderX 2.0.3+

OBJECT 参数说明

参数名类型必填说明
successFunction接口调用的回调函数,详见返回参数说明
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数类型说明
keysArray<String>当前 storage 中所有的 key
currentSizeNumber当前占用的空间大小, 单位:kb
limitSizeNumber限制的空间大小, 单位:kb

示例

uni.getStorageInfo({//获取所有storage中的所有信息
    success: function (res) {//获取成功的回调
        console.log(res.keys);//当前storage中所有的key
        console.log(res.currentSize);//当前占用的空间大小,单位:kb
        console.log(res.limitSize);//限制的空间大小,单位:kb
    }
});
uni.getStorageInfoSync()

同步获取当前 storage 的相关信息。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序
HBuilderX 2.0.3+

示例

try {
    //获取当前所有storage信息
    const res = uni.getStorageInfoSync();
    console.log(res.keys);//所有的key
    console.log(res.currentSize);//当前占用空间的大小,单位:kb
    console.log(res.limitSize);//限制空间的大小,单位:kb
} catch (e) {
    // error
}
uni.removeStorage(OBJECT)

从本地缓存中异步移除指定 key。

OBJECT 参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

uni.removeStorage({ //从本地删除指定key
    key: 'storage_key',//key
    success: function (res) {//删除成功的回调
        console.log('success');
    }
});
uni.removeStorageSync(KEY)

从本地缓存中同步移除指定 key。

参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key

示例

try {
    // 从本地删除指定的key
    uni.removeStorageSync('storage_key');
} catch (e) {
    // error
}
uni.clearStorage()

清理本地数据缓存。

示例

uni.clearStorage();//所有的本地缓存将被清除,异步
uni.clearStorageSync()

同步清理本地数据缓存。

示例

try {
    //清理所有的本地缓存
    uni.clearStorageSync();
} catch (e) {
    // error
}

注意

uni-app的Storage在不同端的实现不同:

  • H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
  • App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
  • 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
  • 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
  • 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
  • 百度、头条小程序文档未说明大小限制

除此之外,其他数据存储方案:

  • H5端还支持websql、indexedDB、sessionStorage
  • App端还支持SQLiteIO文件等本地存储方案。

官方网址

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值