微信小程序数据的生命周期
共 1827字,需浏览 4分钟
·
2021-07-29 23:43
转自:微信开放社区
作者:kindear
微信小程序的数据存储分为三种方式,生命周期如下:
globalData:存储短期数据,引入 app.js 可访问,彻底关闭小程序数据消失
Storage:存储长期数据,全局可访问,移除小程序数据消失
后端服务器:存储跨设备的数据,通过后端授权后可访问,只要服务器不炸数据永存
一、短生命周期数据存储
以小程序启动到彻底关闭为周期的的数据建议存储在 app.js 文件夹中,引用 app.js:
const app =getApp();
假设 Value 是在小程序本次生命周期中经常使用到的一个数据,比如说请求 API 的 token、动态的令牌等。那么就可以把这个值赋值到全局变量中去。实际上并不是只有 app.js 中的 globalData 是全局变量,也可以自己定义数据集。
App({
HG:{
token:''
},
...
})
对于 app.js 里面的 token 进行赋值操作很简单,只要页面引用了 app.js。
app.HG.token = Value;
这个数据在小程序的本次启动到彻底关闭的周期中就会一直存在了,还可以根据需要进行修改。Value 也可以是对象。
二、长生命周期或者隐私数据存储
这种数据的显著特点是在小程序关闭再次重启后依然存在,这种时候可以用本地缓存来解决这种问题。
本地缓存的生命周期:小程序被开始使用 ——> 小程序被彻底从使用列表中移除。
设置缓存的方式:
wx.setStorage({
key: 'hgcookie',
data: {
xh: that.data.xh,
pwd: that.data.pwd
}
})
小程序获取缓存的方式:
var that = this;
wx.getStorage({
key: 'hgcookie',
success: function (res) {
that.setData({
xh: res.data.xh,
pwd: res.data.pwd
});
},
})
比如保存用户的登陆态信息,就可以采用这种方式,但处于安全考虑是不能保存用户的隐私数据。同时如果是非时效性的数据,也可以通过这种方式进行存储。
三、动态信息或配置信息存储
后端服务器保存用户的配置信息,在更换手机时能迅速完成配置同步。
商家小程序推荐商品修改、内容修正、增加活动等,不可能每次都要重写然后再次让小程序进行审核。
对此,可以在后端服务器中保存这个信息。
以一个小程序的轮播广告牌为例:
{
ad1:'imgurl1',
ad2:'imgurl2',
ad3:'imgurl3'
}
把这个数据存放在后台服务器,每一次刷新该页面都请求一次后台数据,对内容进行修改。
wx.request({
url:'XXX',
data:{},
success(res){
that.setData({
adList:res.data
})
}
})
可以用类似这种方式,完成对一些数据的动态控制或者是云同步。
👆 关注「HelloGitHub」第一时间收到更新👆