百度智能小程序 組件生命周期

2020-09-05 15:08 更新

組件的主要生命周期

解釋:自定義組件的生命周期,指的是組件自身的一些可自執(zhí)行的方法,這些方法會在特殊的時間點或遇到一些特殊頁面行為時被自動觸發(fā)而執(zhí)行。

組件的生命周期:created 、 attached 、 ready 、 detached ,這些方法包含了一個組件實例生命流程的主要時間點,具體的使用場景如下:

  • created:組件實例剛剛被創(chuàng)建好時, created 生命周期被觸發(fā),通常情況下,這個生命周期只應(yīng)該用于給組件 this 添加一些自定義屬性字段;
  • attached:在組件完全初始化完畢、進(jìn)入頁面節(jié)點樹后, attached 生命周期被觸發(fā)。此時, this.data 已被初始化為組件的當(dāng)前值。這個生命周期很有用,絕大多數(shù)初始化工作可以在這個時機(jī)進(jìn)行;
  • ready:在 attached 生命周期被觸發(fā)之后,組件的 ready 生命周期會被觸發(fā);
  • detached:在組件離開頁面節(jié)點樹后, detached 生命周期被觸發(fā)。退出一個頁面時,如果組件還在頁面節(jié)點樹中,則 detached 方法會被觸發(fā)。

定義生命周期方法

生命周期方法可以直接定義在 Component 構(gòu)造器的第一級參數(shù)中。

除了以上聲明方式,還可以在 lifetimes 字段內(nèi)進(jìn)行聲明(推薦使用這種方式進(jìn)行管理,其優(yōu)先級最高)。

代碼示例

// 自定義組件js文件
Component({
    // ...
    lifetimes: {
        attached: function() {
            // 在組件實例進(jìn)入頁面節(jié)點樹時執(zhí)行
        },
        detached: function() {
            // 在組件實例被從頁面節(jié)點樹移除時執(zhí)行
        }
    }
    // ...
});

在內(nèi)置 behaviors 中也可以編寫生命周期方法,但不會與其他 behaviors 中的同名生命周期相互覆蓋。

當(dāng)前自定義自身可用的全部生命周期及其描述如下表所示:

生命周期參數(shù)描述最低版本
created在組件實例剛剛被創(chuàng)建時執(zhí)行1.10.13
attached在組件實例進(jìn)入頁面節(jié)點樹時執(zhí)行1.10.13
ready在組件在視圖層布局完成后執(zhí)行1.10.13
detached在組件實例被從頁面節(jié)點樹移除時執(zhí)行1.10.13

組件所在頁面的生命周期

還有一些特殊的生命周期,它們并非與組件有很強(qiáng)的關(guān)聯(lián),但有時組件需要獲知,以便組件內(nèi)部處理。這樣的生命周期稱為“組件所在頁面的生命周期”,在 pageLifetimes 定義段中定義。其中可用的生命周期包括:

生命周期參數(shù)描述最低版本
show組件所在的頁面被展示時執(zhí)行1.13.27
hide組件所在的頁面被隱藏時執(zhí)行1.13.27

代碼示例

// 自定義組件js文件
Component({
    // ...
    pageLifetimes: {
        show: function() {
        // 組件所在的頁面被展示時觸發(fā)
        },
        hide: function() {
        // 組件所在的頁面被隱藏時觸發(fā)
        }
    }
    // ...
});


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號