小程序模板网

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


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/26835.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询