雲開發這一塊,登錄功能可以使用緩存。將用戶信息用緩存記錄。那麼你可能有疑問了,用戶清除了怎麼辦?那豈不是會造成數據紊亂?
別急,我們還是可以備份一下用戶信息的嘛~ 將用戶信息存入數據庫一份,展示信息用緩存,這樣用戶每次打開小程序時,就不必要從數據庫中獲取數據,從而減少數據庫請求次數。
我們通過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:''
}
有問題可以隨時評論留言~