异步就是不管保没保存成功,程序都会继续往下执行。同步是等保存成功了,才会执行下面的代码。使用异步,性能会更好;而使用同步,数据会更安全。
1 uni.setStorage(OBJECT)
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
saveUserName2Storage() {
uni.setStorage({
key: 'userName',
data: 'zhaoshuai-lc',
success: e => {
}
});
}
2 uni.setStorageSync(KEY,DATA)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
saveUserName2Storage() {
uni.setStorageSync('userName', 'zhaoshuai-lc');
}
3 uni.getStorage(OBJECT)
从本地缓存中异步获取指定 key 对应的内容。
saveUserName2Storage() {
uni.getStorage({
key: 'storage_key',
success: function (res) {
console.log(res.data);
}
});
}
4 uni.getStorageSync(KEY)
从本地缓存中同步获取指定 key 对应的内容。
saveUserName2Storage() {
const value = uni.getStorageSync('storage_key');
}
5 uni.removeStorage(OBJECT)
从本地缓存中异步移除指定 key。
uni.removeStorage({
key: 'storage_key',
success: function (res) {
console.log('success');
}
});
6 uni.removeStorageSync(KEY)
从本地缓存中同步移除指定 key。
try {
uni.removeStorageSync('storage_key');
} catch (e) {
// error
}
7 uni.clearStorage()
清理本地数据缓存。
uni.clearStorage();
8 uni.clearStorageSync()
同步清理本地数据缓存。
try {
uni.clearStorageSync();
} catch (e) {
// error
}
uni-app的Storage在不同端的实现不同:
- H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
- App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
- 各个小程序端为其自带的storage
api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。 - 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。