日韩国产精品99成人不卡在线无毒|狠狠躁夜夜爽一级二级精品|亚洲日日噜噜孕妇中文字幕|日韩久草中文三级片

新聞動態(tài)

微信小程序的生命周期函數有哪些?

常見問題 發(fā)布者:ou3377 2021-12-17 09:16 訪問量:302

圖片

一、是什么

vuereact框架一樣,微信小程序框架也存在生命周期,實質也是一堆會在特定時期執(zhí)行的函數

小程序中,生命周期主要分成了三部分:

  • 應用的生命周期
  • 頁面的生命周期
  • 組件的生命周期

應用的生命周期

小程序的生命周期函數是在app.js里面調用的,通過App(Object)函數用來注冊一個小程序,指定其小程序的生命周期回調

頁面的生命周期

頁面生命周期函數就是當你每進入/切換到一個新的頁面的時候,就會調用的生命周期函數,同樣通過App(Object)函數用來注冊一個頁面

組件的生命周期

組件的生命周期,指的是組件自身的一些函數,這些函數在特殊的時間點或遇到一些特殊的框架事件時被自動觸發(fā),通過Component(Object)進行注冊組件

二、有哪些

應用的生命周期

生命周期說明
onLaunch小程序初始化完成時觸發(fā),全局只觸發(fā)一次
onShow小程序啟動,或從后臺進入前臺顯示時觸發(fā)
onHide小程序從前臺進入后臺時觸發(fā)
onError小程序發(fā)生腳本錯誤或 API 調用報錯時觸發(fā)
onPageNotFound小程序要打開的頁面不存在時觸發(fā)
onUnhandledRejection()小程序有未處理的 Promise 拒絕時觸發(fā)
onThemeChange系統(tǒng)切換主題時觸發(fā)

頁面的生命周期

生命周期說明作用
onLoad生命周期回調—監(jiān)聽頁面加載發(fā)送請求獲取數據
onShow生命周期回調—監(jiān)聽頁面顯示請求數據
onReady生命周期回調—監(jiān)聽頁面初次渲染完成獲取頁面元素(少用)
onHide生命周期回調—監(jiān)聽頁面隱藏終止任務,如定時器或者播放音樂
onUnload生命周期回調—監(jiān)聽頁面卸載終止任務

組件的生命周期

生命周期說明
created生命周期回調—監(jiān)聽頁面加載
attached生命周期回調—監(jiān)聽頁面顯示
ready生命周期回調—監(jiān)聽頁面初次渲染完成
moved生命周期回調—監(jiān)聽頁面隱藏
detached生命周期回調—監(jiān)聽頁面卸載
error每當組件方法拋出錯誤時執(zhí)行

注意的是:

  • 組件實例剛剛被創(chuàng)建好時, created 生命周期被觸發(fā),此時,組件數據 this.data 就是在 Component  構造器中定義的數據 data , 此時不能調用 setData
  • 在組件完全初始化完畢、進入頁面節(jié)點樹后, attached 生命周期被觸發(fā)。此時, this.data 已被初始化為組件的當前值。這個生命周期很有用,絕大多數初始化工作可以在這個時機進行
  • 在組件離開頁面節(jié)點樹后, detached 生命周期被觸發(fā)。退出一個頁面時,如果組件還在頁面節(jié)點樹中,則  detached 會被觸發(fā)

還有一些特殊的生命周期,它們并非與組件有很強的關聯,但有時組件需要獲知,以便組件內部處理,這樣的生命周期稱為“組件所在頁面的生命周期”,在 pageLifetimes 定義段中定義,如下:

生命周期說明
show組件所在的頁面被展示時執(zhí)行
hide組件所在的頁面被隱藏時執(zhí)行

代碼如下:

Component({
  pageLifetimes: {
    showfunction({
      // 頁面被展示
    },
    hidefunction({
      // 頁面被隱藏
    },
  }
})

三、執(zhí)行過程

應?的?命周期執(zhí)行過程:

  • ?戶?次打開?程序,觸發(fā) onLaunch(全局只觸發(fā)?次)

  • ?程序初始化完成后,觸發(fā)onShow?法,監(jiān)聽?程序顯示

  • ?程序從前臺進?后臺,觸發(fā) onHide?法

  • ?程序從后臺進?前臺顯示,觸發(fā) onShow?法

  • ?程序后臺運??定時間,或系統(tǒng)資源占?過?,會被銷毀

???命周期的執(zhí)行過程:

  • ?程序注冊完成后,加載??,觸發(fā)onLoad?法
  • ??載?后觸發(fā)onShow?法,顯示??
  • ?次顯示??,會觸發(fā)onReady?法,渲染??元素和樣式,?個??只會調??次
  • 當?程序后臺運?或跳轉到其他??時,觸發(fā)onHide?法
  • 當?程序有后臺進?到前臺運?或重新進???時,觸發(fā)onShow?法
  • 當使?重定向?法 wx.redirectTo() 或關閉當前?返回上??wx.navigateBack(),觸發(fā)onUnload

當存在也應用生命周期和頁面周期的時候,相關的執(zhí)行順序如下:

  • 打開小程序:(App)onLaunch --> (App)onShow --> (Pages)onLoad --> (Pages)onShow --> (pages)onRead

  • 進入下一個頁面:(Pages)onHide --> (Next)onLoad --> (Next)onShow --> (Next)onReady

  • 返回上一個頁面:(curr)onUnload --> (pre)onShow

  • 離開小程序:(App)onHide

  • 再次進入:小程序未銷毀 --> (App)onShow(執(zhí)行上面的順序),小程序被銷毀,(App)onLaunch重新開始執(zhí)行.

參考文獻

  • https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onLaunch-Object-object
  • https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onLoad-Object-query
  • https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onLaunch-Object-object




關鍵字: 小程序 生命周期

文章連接: http://www.hsjyfc.com.cn/cjwt/831.html

版權聲明:文章由 晨展科技 整理收集,來源于互聯網或者用戶投稿,如有侵權,請聯系我們,我們會立即刪除。如轉載請保留