uniapp本地存储
vue的本地存储方式, 小程序在浏览器测试时也可以实现, 但是在真机运行时不能实现
一. 存储
- uni.setStorage(OBJECT)
将数据存储在本地缓存中指定的key中, 会覆盖掉原来该key对应的内容, 这是一个异步接口
- OBJECT参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | String | 是 | 本地缓存中的指定的 key |
data | Any | 是 | 需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
- 示例
uni.setStorage({
key:"token",
data:'123456789',
success: function (){
console.log("存储成功")
}
})
- uni.setStorageSync(KEY, DATA)
将data存储在本地缓存中指定的key中,会覆盖掉原来该key对应的内容, 这是一个同步接口
try{
uni.setStorageSync('token', '123456')
} catch (e){
//错误
}
二. 获取
- uni.getStorage(OBJECT)
从本地存储中异步获取对应可以对应的内容
uni.getStorage({
key:"token",
success: function(res){
console.log(res.data); //123456789
}
})
- uni.getStorageSync(KEY)
从本地缓存中同步获取指定key对应的内容
try {
const value = uni.getStorageSync("token");
if(value) {
console.log(value)
}
} catch(e){
//错误
}
- uni.getStorageInfo(OBJECT)
异步获取当前Storage的相关信息
- success 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
keys | Array<String> | 当前 storage 中所有的 key |
currentSize | Number | 当前占用的空间大小, 单位:kb |
limitSize | Number | 限制的空间大小, 单位:kb |
uni.getStorageInfo({
success: function(res) {
console.log(res.keys);
console.log(res.currentSize);
console.log(res.limitSize);
}
})
- uni.getStorageInfoSync()
同步获取当前storage的相关信息
try {
const res = uni.getStorageInfoSync();
console.log(res.keys);
console.log(res.currentSize);
console.log(res.limitSize);
} catch (e) {
// 错误
}
三. 移除
- uni.removeStorage(OBJECT)
从本地缓存中异步移除指定key
uni.removeStorage({
key:'token',
success: function(res){
console.log('删除成功')
}
})
- uni.removeStorageSync(KEY)
从本地缓存中同步移除指定key
try {
uni.removeStorageSync('storage_key')
} catch(e){
//错误
}
- uni.clearStorage()
清除本地缓存
uni.clearStorage();
- uni.clearStorageSync()
同步清理本地数据缓存
try {
uni.clearStorageSync();
} catch (e) {
//错误
}