微信小程序数据的生命周期

HelloGitHub

共 1827字,需浏览 4分钟

 · 2021-07-29

转自:微信开放社区

作者: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',
  successfunction (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
  })
 }
})

可以用类似这种方式,完成对一些数据的动态控制或者是云同步。

- END -

👆 关注「HelloGitHub」第一时间收到更新👆

浏览 76
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报