微信小程序開發(fā)中組件的生命周期詳細介紹
組件的生命周期
組件的生命周期,指的是組件自身的一些函數(shù),這些函數(shù)在特殊的時間點或遇到一些特殊的框架事件時被自動觸發(fā)。
其中,最重要的生命周期是 created、attached、 detached ,包含一個組件實例生命流程的最主要時間點。
自定義組件的生命周期函數(shù)
小程序組件可用的全部生命周期如下表所示:
生命周期函數(shù) | 參數(shù) | 描述說明 |
---|---|---|
created | 無 | 在組件實例剛剛被創(chuàng)建時執(zhí)行 |
attached | 無 | 在組件實例進入頁面節(jié)點樹時執(zhí)行 |
ready | 無 | 在組件在視圖層布局完成后執(zhí)行 |
moved | 無 | 在組件實例被移動到節(jié)點樹另一個位置時執(zhí)行 |
detached | 無 | 在組件實例被從頁面節(jié)點樹移除時執(zhí)行 |
error | Object Error | 每當組件方法拋出錯誤時執(zhí)行 |
執(zhí)行順序
從該圖中可以看出組件的 ready 與 detached 執(zhí)行順序并沒有明確的先后關(guān)系。
組件常用的生命周期函數(shù)
在小程序組件中,最重要的生命周期函數(shù)有3個,分別是created
、attached
.
detached
。它們各自的特點。如下︰
- 組件實例剛被創(chuàng)建好的時候,created生命周期函數(shù)會被觸發(fā),此時還不能調(diào)用setData,通常在這個生命周期函數(shù)中,只應(yīng)該用于給組件的this添加一些自定義的屬性字段在組件
- 完全初始化完畢、進入頁面節(jié)點樹后,attached生命周期函數(shù)會被觸發(fā),此時, this.data已被初始化完畢。這個生命周期很有用,絕大多數(shù)初始化的工作可以在這個時機進行(例如發(fā)請求獲取初始數(shù)據(jù))
- 在組件離開頁面節(jié)點樹后,detached生命周期函數(shù)會被觸發(fā),退出一個頁面時,會觸發(fā)頁面內(nèi)每個自定義組件的detached生命周期函數(shù)此時適合做一些清理性質(zhì)的工作
lifetimes節(jié)點
在小程序組件中,生命周期函數(shù)可以直接定義在Component構(gòu)造器的第一級參數(shù)中,可以在 lifetimes字段內(nèi)進行聲明(這是推薦的方式,其優(yōu)先級最高)。如下:
Component({ lifetimes:{ created(){ console.log('created'); }, attached(){ console.log('attached'); } } )}
注意:若不寫在lifetime節(jié)點中且同時存在lifetime節(jié)點,優(yōu)先執(zhí)行l(wèi)ifetime節(jié)點中的生命周期函數(shù),并覆蓋掉節(jié)點之外的生命周期函數(shù)。
組件所在頁面的生命周期函數(shù)
有時,自定義組件的行為依賴于頁面狀態(tài)的變化,此時就需要用到組件所在頁面的生命周期。
在自定義組件中,組件所在頁面的生命周期函數(shù)有如下3個,分別是:
生命周期函數(shù) | 參數(shù) | 描述 |
---|---|---|
show | 無 | 組件所在的頁面被展示時執(zhí)行 |
hide | 無 | 組件所在的頁面被隱藏時執(zhí)行 |
resize | object Size | 組件所在的頁面尺寸變化時執(zhí)行 |
pageLifetimes節(jié)點
組件所在頁面的生命周期函數(shù),需要定義在pageLifetimes節(jié)點中,如下:
Component({ pageLifetimes:{ show(){ console.log("show!!"); }, hide(){ console.log("hide!!"); }, resize(){ console.log("resize"); } } )}
當頁面顯示和隱藏時觸發(fā)
到此這篇關(guān)于微信小程序開發(fā)中組件的生命周期詳細介紹的文章就介紹到這了,更多相關(guān)小程序生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信域名檢測接口調(diào)用演示步驟(含PHP、Python)
這篇文章主要介紹了微信域名檢測接口調(diào)用演示步驟(含PHP、Python),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Javascript實現(xiàn)通過選擇周數(shù)顯示開始日和結(jié)束日的實現(xiàn)代碼
這篇文章主要介紹了Javascript實現(xiàn)通過選擇周數(shù)顯示開始日和結(jié)束日的實例代碼的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05使用window.postMessage()方法在兩個網(wǎng)頁間傳遞數(shù)據(jù)
這篇文章介紹了使用window.postMessage()在兩個網(wǎng)頁間傳遞數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06淺析location.href跨窗口調(diào)用函數(shù)
本文詳細介紹了location.href跨窗口調(diào)用函數(shù),具體的使用方法及實例,有需要的朋友可以參考下2016-11-11