新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序教程:微信小程序組件生命周期
組件生命周期
組件的生命周期,指的是組件自身的一些函數(shù),這些函數(shù)在特殊的時間點或遇到一些特殊的框架事件時被自動觸發(fā)。

其中,最重要的生命周期是 created attached detached ,包含一個組件實例生命流程的最主要時間點。
- 組件實例剛剛被創(chuàng)建好時, created 生命周期被觸發(fā)。此時,組件數(shù)據(jù) this.data 就是在 Component 構(gòu)造器中定義的數(shù)據(jù) data 。 此時還不能調(diào)用 setData 。 通常情況下,這個生命周期只應該用于給組件 this 添加一些自定義屬性字段。
- 在組件完全初始化完畢、進入頁面節(jié)點樹后, attached 生命周期被觸發(fā)。此時, this.data 已被初始化為組件的當前值。這個生命周期很有用,絕大多數(shù)初始化工作可以在這個時機進行。
- 在組件離開頁面節(jié)點樹后, detached 生命周期被觸發(fā)。退出一個頁面時,如果組件還在頁面節(jié)點樹中,則 detached 會被觸發(fā)。
定義生命周期方法
生命周期方法可以直接定義在 Component 構(gòu)造器的第一級參數(shù)中。
自小程序基礎(chǔ)庫版本 2.2.3 起,組件的的生命周期也可以在 lifetimes 字段內(nèi)進行聲明(這是推薦的方式,其優(yōu)先級最高)。
代碼示例:
Component({
lifetimes: {
attached: function() {
// 在組件實例進入頁面節(jié)點樹時執(zhí)行
},
detached: function() {
// 在組件實例被從頁面節(jié)點樹移除時執(zhí)行
},
},
// 以下是舊式的定義方式,可以保持對 <2.2.3 版本基礎(chǔ)庫的兼容
attached: function() {
// 在組件實例進入頁面節(jié)點樹時執(zhí)行
},
detached: function() {
// 在組件實例被從頁面節(jié)點樹移除時執(zhí)行
},
// ...
})
在 behaviors 中也可以編寫生命周期方法,同時不會與其他 behaviors 中的同名生命周期相互覆蓋。但要注意,如果一個組件多次直接或間接引用同一個 behavior ,這個 behavior 中的生命周期函數(shù)在一個執(zhí)行時機內(nèi)只會執(zhí)行一次。
可用的全部生命周期如下表所示。
| 生命周期 | 參數(shù) | 描述 | 最低版本 |
|---|---|---|---|
| created | 無 | 在組件實例剛剛被創(chuàng)建時執(zhí)行 | 1.6.3 |
| attached | 無 | 在組件實例進入頁面節(jié)點樹時執(zhí)行 | 1.6.3 |
| ready | 無 | 在組件在視圖層布局完成后執(zhí)行 | 1.6.3 |
| moved | 無 | 在組件實例被移動到節(jié)點樹另一個位置時執(zhí)行 | 1.6.3 |
| detached | 無 | 在組件實例被從頁面節(jié)點樹移除時執(zhí)行 | 1.6.3 |
| error | Object Error |
每當組件方法拋出錯誤時執(zhí)行 | 2.4.1 |
組件所在頁面的生命周期
還有一些特殊的生命周期,它們并非與組件有很強的關(guān)聯(lián),但有時組件需要獲知,以便組件內(nèi)部處理。這樣的生命周期稱為“組件所在頁面的生命周期”,在 pageLifetimes 定義段中定義。其中可用的生命周期包括:
| 生命周期 | 參數(shù) | 描述 | 最低版本 |
|---|---|---|---|
| show | 無 | 組件所在的頁面被展示時執(zhí)行 | 2.2.3 |
| hide | 無 | 組件所在的頁面被隱藏時執(zhí)行 | 2.2.3 |
| resize | Object Size |
組件所在的頁面尺寸變化時執(zhí)行 | 2.4.0 |
代碼示例:
Component({
pageLifetimes: {
show: function() {
// 頁面被展示
},
hide: function() {
// 頁面被隱藏
},
resize: function(size) {
// 頁面尺寸變化
}
}
})
網(wǎng)站標題:創(chuàng)新互聯(lián)小程序教程:微信小程序組件生命周期
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/ccdgpsd.html


咨詢
建站咨詢
