本文目的
一、讲解setStorageSync&getStorageSync 接口的使用
二、setStorageSync和setStorage的区别
三、🌰实现数据的本地存储,退出微信再次登陆时,保留数据。
一、讲解setStorageSync&getStorageSync 接口的使用
在做小程序时遇到了这个需求,要求在微信退出,再次进入的时候,仍然记得扫过码的状态。那么这个需求微信小程序开发是提供了实现办法的……
官方文档链接👉微信小程序官方文档
这种需求我们需要借助微信小程序给的API接口👉setStorageSync&getStorageSync。文档中已经写明,setStorageSync用来存储,getStorageSync用来获取。
try {
wx.setStorageSync('key', 'value')
} catch (e) { }
try {
var value = wx.getStorageSync('key')
if (value) {
// Do something with return value
}
} catch (e) {
// Do something when catch error
}
我们下面的代码测试一下,可以帮助我们更好的了解。将下面的代码放在onShow的方法下。 用一个已知的数据Date.now() 。加上以后,打开小程序的时候就会记录数据了,将数据存储起来。
try {
var value = wx.getStorageSync('hello')
if (value) {
// Do something with return value
console.log('获取到了本地缓存',value)
}
else{
console.log('没有获取到本地缓存',1)
wx.setStorageSync('hello', Date.now())
}
} catch (e) {
// Do something when catch error
console.log('没有获取到本地缓存',2)
wx.setStorageSync('hello', Date.now())
}
二、setStorageSync和setStorage的区别
setStorageSync指的是同步缓存,setStorage指的是异步缓存。
不同点:
1⃣️异步不会阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。
异步是不管保存成功与否,程序都会继续往下执行。同步是等保存成功了,才会执行下面的代码。
2⃣️setStorageSync只支持原生类型、Date、及能够通过JSON.stringify序列化的对象,不能直接传入对象。
否则报错:
setStorage:fail parameter error: parameter should be String instead of Object;
相同点:
它们都是将数据存储在本地缓存指定的key中,单个key最大数据长度为 1MB,所有数据存储上限为 10MB。(已经蛮大的了...)
使用异步,性能会更好。而使用同步,数据会更安全。
三、🌰实现数据的本地存储,退出微信再次登陆时,保留数据。
下面我们可以利用这个api保留我们想要的数据了,存储senceInfo。然后在需要展示的onShow的页面get出来。具体逻辑大家就按项目需求吧
就酱