微信小程序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("获取用户信息失败~~")
}
})
},