国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

curried / 3123人閱讀

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

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

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

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

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

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

//app.js
App({
  onLaunch: function () {
    wx.request({
      url: "test.php", //僅為示例,并非真實(shí)的接口地址
      data: {
      },
      success: function(res) {
        this.globalData.employId = res.employId;
        //由于這里是網(wǎng)絡(luò)請(qǐng)求,可能會(huì)在 Page.onLoad 之后才返回
        // 所以此處加入 callback 以防止這種情況
        if (this.employIdCallback){
           this.employIdCallback(employId);
        }
      }
    })
  },
  globalData: {
    employId: ""
  }
})
//index.js
//獲取應(yīng)用實(shí)例
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ò)請(qǐng)求,可能會(huì)在 Page.onLoad 之后才返回
      // 所以此處加入 callback 以防止這種情況
      app.employIdCallback = employId => {
        if (employId != "") {
          this.setData({
            albumDisabled: false,
            bindDisabled: true
          });
        }
      }
    }
  }
})

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/93329.html

相關(guān)文章

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

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

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

    摘要:入口文件繼承自組件基類,它同樣擁有組件生命周期,但因?yàn)槿肟谖募奶厥庑裕纳芷诓⒉煌暾纭VС纸M件化開發(fā),組件代碼可以放在任意位置,不過建議放在下的目錄中。 生命周期 componentWillMount 在微信小程序中這一生命周期方法對(duì)應(yīng)頁面的onLoad或入口文件app中的onLaunch componentDidMount 在微信小程序中這一生命周期方法對(duì)應(yīng)頁面的onRe...

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

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

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

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

    Shonim 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<