微信小程序onload()和onshow()的使用
聲明周期onLoad與onShow的區別?
-
onLoad頁面加載時調用,可以獲取參數,通過options,只調用一次。
-
onShow頁面顯示時調用(啟動/頁面從隱藏到啟動),可調用多次。
業務場景
一、跳轉攜帶參數
從A頁面跳轉到B頁面,B頁面讀取傳遞過來的參數
A頁面
goChangeNickname: function() {
var name = this.data.nickname;
wx.navigateTo({
url: "/pages/edit-partial-info/index?type=nickname&nickname="+name
});
},
B頁面
//頁面加載時
onLoad: function (options) {
var me = this;
console.log(options);
debugger;
me.setData({
nickname: options.nickname,
intro: options.intro,
type: options.type
})
}
二、頁面間同步刷新數據
總共有AB先后兩個頁面,同時顯示相同的數據。
現在在B頁面修改完數據,返回,A頁面同步更新
這里涉及到頁面從隱藏到啟動,因此使用onShow()
//頁面加載時
onShow: function (options) {
var me = this;
var user = app.getGlobalUserInfo();
var serverUrl = app.serverUrl;
// 調用后端
wx.request({
url: serverUrl + '/user/queryUserInfo?userId=' + user.id,
method: "GET",
header: {
'content-type': 'application/json' // 默認值
},
success: function (res) {
var result = res.data.data;
if (res.data.status == 200) {
me.setData({
type: me.options.type,
userId: result.id,
avatarUrl: result.avatarUrl,
nickname: result.nickName,
intro: result.intro,
sex: result.gender,
college: "",
grade: result.grade
})
}
},
fail: function () {
console.log("獲取用戶信息失敗~~")
}
})
},