亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

小程序onLaunch,onLoad 執(zhí)行生命周期

curried / 3191人閱讀

摘要:本來按照事件順序,小程序初始化時觸發(fā)里的,后面再執(zhí)行頁面里的,但是在里請求獲取是否有權(quán)限,等待返回值的時候里的事件就已經(jīng)執(zhí)行了。頁面判斷一下當(dāng)前是否有值,如果沒有第一次則定義定義一個方法回調(diào)函數(shù)。

本來按照事件順序,小程序初始化時觸發(fā)App里的onLaunch,后面再執(zhí)行頁面Page里的onLoad,但是在onLaunch里請求獲取是否有權(quán)限,等待返回值的時候Page里的onLoad事件就已經(jīng)執(zhí)行了。

//app.js
App({
  onLaunch: function () {
    console.log("onLaunch");
    wx.request({
      url: "test.php", //僅為示例,并非真實的接口地址
      data: {
      },
      success: function(res) {
        console.log("onLaunch-request-success");
        // 將employId賦值給全局變量,提供給頁面做判斷
        this.globalData.employId = res.employId;   
      }
    })
  },
  globalData: {
    employId: ""
  }
})
//index.js
//獲取應(yīng)用實例
const app = getApp()

Page({
  data: {
    albumDisabled: true,
    bindDisabled: false
  },
  onLoad: function () {
    console.log("onLoad");
    console.log("onLoad app.globalData.employId = " + app.globalData.employId);
    //判斷是用戶是否綁定了
    if (app.globalData.employId && app.globalData.employId != "") {
      this.setData({
        albumDisabled: false,
        bindDisabled: true
      });
  }
})

控制臺打印的結(jié)果是

onLaunch
onLoad
onLoad app.globalData.employId = 
onLaunch-request-success

要是能等完onLaunch請求完再執(zhí)行Page的onLoad方法那該多好。
這里采用的方法是定義一個回調(diào)函數(shù)。
Page頁面判斷一下當(dāng)前app.globalData.employId是否有值,如果沒有(第一次)則定義定義一個app方法(回調(diào)函數(shù))app.employIdCallback = employId => {...}。
App頁面在請求success后判斷時候有Page頁面定義的回調(diào)方法,如果有就執(zhí)行該方法。因為回調(diào)函數(shù)是在Page里面定義的所以方法作用域this是指向Page頁面。

//app.js
App({
  onLaunch: function () {
    wx.request({
      url: "test.php", //僅為示例,并非真實的接口地址
      data: {
      },
      success: function(res) {
        this.globalData.employId = res.employId;
        //由于這里是網(wǎng)絡(luò)請求,可能會在 Page.onLoad 之后才返回
        // 所以此處加入 callback 以防止這種情況
        if (this.employIdCallback){
           this.employIdCallback(employId);
        }
      }
    })
  },
  globalData: {
    employId: ""
  }
})
//index.js
//獲取應(yīng)用實例
const app = getApp()

Page({
  data: {
    albumDisabled: true,
    bindDisabled: false
  },
  onLoad: function () {
    //判斷是用戶是否綁定了
    if (app.globalData.employId && app.globalData.employId != "") {
      this.setData({
        albumDisabled: false,
        bindDisabled: true
      });
    } else {
      // 由于 getUserInfo 是網(wǎng)絡(luò)請求,可能會在 Page.onLoad 之后才返回
      // 所以此處加入 callback 以防止這種情況
      app.employIdCallback = employId => {
        if (employId != "") {
          this.setData({
            albumDisabled: false,
            bindDisabled: true
          });
        }
      }
    }
  }
})

這樣的話,就能實現(xiàn)想要的結(jié)果。執(zhí)行順序就是:

[App] onLaunch -> [Page] onLoad -> [App] onLaunch sucess callback

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/93329.html

相關(guān)文章

  • 程序生命周期——程序探索

    摘要:運行機(jī)制小程序啟動會有兩種情況,一種是冷啟動,一種是熱啟動。建議小程序在必要時使用監(jiān)聽內(nèi)存告警事件,進(jìn)行必要的內(nèi)存清理。 前言 以小程序為切入點,深入理解總結(jié)方方面面的知識點,做成系列文章,希望能得到大神的指點和幫助新人入門,承上啟下才是好程序猿由于是系列第一篇文章,緊跟著的是一大段廢話,只關(guān)心技術(shù)的可以跳過 轉(zhuǎn)眼半年又要過去了,意味著來新公司快半年了,離上次寫文章也半年了,渾渾噩噩...

    Caizhenhao 評論0 收藏0
  • 微信程序Taro開發(fā)(2):生命周期及開發(fā)中注意點

    摘要:入口文件繼承自組件基類,它同樣擁有組件生命周期,但因為入口文件的特殊性,他的生命周期并不完整,如。支持組件化開發(fā),組件代碼可以放在任意位置,不過建議放在下的目錄中。 生命周期 componentWillMount 在微信小程序中這一生命周期方法對應(yīng)頁面的onLoad或入口文件app中的onLaunch componentDidMount 在微信小程序中這一生命周期方法對應(yīng)頁面的onRe...

    morgan 評論0 收藏0
  • 擴(kuò)展微信程序 Page 構(gòu)造函數(shù),修改生命周期函數(shù)

    摘要:不直接正題一將公共方法綁定到上單個綁定注意公共函數(shù)的名字不要重復(fù),否則覆蓋多個綁定,文件綁定需要綁定的函數(shù)由文件出來二擴(kuò)展,修改生命周期函數(shù)這里必須使用不可以使用箭頭函數(shù),否則指向錯誤擴(kuò)展函數(shù)在是當(dāng)前實例上下文中執(zhí)行,所以當(dāng)前的為當(dāng)前實例如 不BB,直接正題 一. 將公共方法綁定到Page上 單個綁定 const oldPage = Page Page = function(app...

    lucas 評論0 收藏0
  • 擴(kuò)展微信程序 Page 構(gòu)造函數(shù),修改生命周期函數(shù)

    摘要:不直接正題一將公共方法綁定到上單個綁定注意公共函數(shù)的名字不要重復(fù),否則覆蓋多個綁定,文件綁定需要綁定的函數(shù)由文件出來二擴(kuò)展,修改生命周期函數(shù)這里必須使用不可以使用箭頭函數(shù),否則指向錯誤擴(kuò)展函數(shù)在是當(dāng)前實例上下文中執(zhí)行,所以當(dāng)前的為當(dāng)前實例如 不BB,直接正題 一. 將公共方法綁定到Page上 單個綁定 const oldPage = Page Page = function(app...

    Shonim 評論0 收藏0

發(fā)表評論

0條評論

curried

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<