云开发这一块,登录功能可以使用缓存。将用户信息用缓存记录。那么你可能有疑问了,用户清除了怎么办?那岂不是会造成数据紊乱?
别急,我们还是可以备份一下用户信息的嘛~ 将用户信息存入数据库一份,展示信息用缓存,这样用户每次打开小程序时,就不必要从数据库中获取数据,从而减少数据库请求次数。
我们通过button按钮设置类型获取用户信息,将用户信息设置为全局变量。因为小程序每次启动的时候都是要先运行全局文件的。所以我们可以有以下步骤:
- 获取用户信息,设置缓存
- 编写全局变量代码
- 获取全局变量,取用户信息
index.wxml:
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo">登录</button>
显示用户信息你可以自己写以下,通过判断userInfo值是否存在,从而取消登录按钮的展示,展示用户信息。
index.js:
data: {
userInfo:''
},
onLoad: function (options) {
const userInfo = app.globalData.userInfo
this.setData({
userInfo:userInfo
})
},
getUserInfo(e){
//云函数将用户信息存入数据库,可参考我前面的文章
wx.setStorageSync('userInfo', e.detail.userInfo)
this.setData({
userInfo:e.detail.userInfo
})
}
app.js:
onLaunch: function () {
const userInfo = wx.getStorageSync('userInfo')
if(userInfo){
this.globalData.userInfo = userInfo
}else{
console.log('no userInfo')
}
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
// env: 'my-env-id',
traceUser: true,
})
}
},
globalData:{
userInfo:'',
openId:''
}
有问题可以随时评论留言~