天天看點

微信小程式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("擷取使用者資訊失敗~~")
      }
    })
  }
           

如果你也想開發一款屬于自己的微信小程式或者app,可以通過第三方專業開發平台,來幫助你實作開發需求:廈門在乎科技-專注小程式、app、網站開發

繼續閱讀