微信小程序提供了两种方式来进行本地存储数据:同步和异步。
1.写入本地数据
wx.setStorage(Object)
将数据存在本地缓存指定的key中,会覆盖掉原来该key对应的内容,这是一个异步接口,Object参数属性如下:
异步写入本地数据缓存
,使用回调函数处理接口调用情况
示例代码:
wx.setStorage({
key:"key",
data:"value"
success: function() {
console.log('写入value成功')
},
fail: function() {
console.log('写入value发生错误')
}
})
wx.setStorageSync(KEY,DATA)
将数据存在本地缓存指定的key中,会覆盖掉原来该key对应的内容,这是一个同步接口,参数说明:
同步接口写入本地数据缓存
,使用try...catch...
处理接口调用情况
示例代码如下:
try{
wx.setStorageSync('key', 'value')
console.log('写入value成功')
}catch (e) {
console.log('写入value发生错误')
}
2.读取本地数据
wx.getStorage(Object)
异步读取
本地缓存数据,使用success
、fail
等回调函数处理接口调用情况,Object
参数属性如下:
示例代码如下:
// 异步读取本地缓存
wx.getStorage({
key: 'key1',
success: function(res) {
// 异步接口在success回调才能拿到返回值
var value1 = res.data
},
fail: function() {
console.log('读取key1发生错误')
}
})
wx.getStorageSync(KEY)
从本地缓存中同步获取指定key的对应内容,使用try...catch...
处理读取的错误信息
示例代码如下:
try{
var value2 = wx.getStorageSync('key2')
}catch (e) {
console.log('读取key2发生错误')
}
3.删除单个数据
wx.removeStorage(Object)
从本地缓存中移除指定 key,关键是指定key哦,就是清除单个缓存,Object参数属性如下:
示例代码如下:
wx.removeStorage({
key: 'mykey',
success: function(res) {
console.log(res.data);
},
});
wx.removeStorageSync(Key)
wx.removeStorageSync()
根据key值同步删除本地数据
示例代码如下:
wx.removeStorageSync('myKey');
4.清空数据
wx.clearStorage()
清理本地数据缓存,无Key,一键清除所有!加了Key也是无效的!
示例代码如下:
wx.clearStorage();
//不阻塞下面代码
doSomthing();
wx.clearStorageSync()
wx.clearStorageSync()
同步清理本地数据缓存
示例代码如下:
wx.clearStorageSync();
//不阻塞下面代码
doSomething();
5.销毁数据
wx.revokeBufferURL(string url)
根据 URL 销毁存在内存中的数据
参数 | 说明 |
string url | 需要销毁的二进制数据 URL |
总结:
在小程序中,同步方式会阻塞代码执行,适用于简单、快速的数据存取操作。
异步方式不会阻塞代码执行,适用于需要处理大量数据或需要与其他异步操作协同的场景。