小程序中組件的生命週期

1. 組件的主要生命週期

組件的生命週期,指的是組件自身的一些函數,這些函數在特殊的時間點或遇到一些特殊的框架事件時被自動觸發,其中,最重要的生命週期是 created、attached、detached,包含一個組件實例生命流程的最主要時間點

  • 組件實例剛剛被創建好時,created 生命週期觸發,此時還不能調用 setData,通常情況下,這個生命週期只應該用於給組件 this 添加一些自定義屬性字段
  • 在組件完全初始化完畢、進入頁面節點樹後,attached 生命週期被觸發,此時,this.data已被初始化完畢,此時可以調用 setData,這個生命週期很有用,絕大多數初始化工作可以在這個時機進行
  • 在組件離開頁面節點樹後,detached 生命週期被觸發,退出一個頁面時,如果組件還在頁面節點樹中,則detached 會被觸發

2. 組件可用的全部生命週期函數

生命週期 參數 描述 最低版本
created 在組件實例剛剛被創建時執行 1.6.3
attached 在組件實例進入頁面節點樹時執行 1.6.3
ready 在組件在視圖層佈局完成後執行 1.6.3
moved 在組件實例被移動到節點樹另一個位置時執行 1.6.3
detached 在組件實例被從頁面節點樹移除時執行 1.6.3
error Object Error 每當組件方法拋出錯誤時執行 2.4.1

3. 定義組件的生命週期

生命週期方法可以直接定義在 Component 構造器的第一級參數中

自小程序基礎庫版本 2.2.3 起,組件的生命週期也可以在 lifetimes 字段內進行聲明( 設置推薦的方式,其優先級最高)

示例代碼如下:

Component({
    lifetimes:{
        attached(){},  //在組件實例進入頁面節點樹時執行
        detached(){},  //在組件實例被從頁面節點樹移除時執行
    },
    // 以下是舊式的定義方式,可以保持對 < 2.2.3 版本基礎庫的兼容
    attached(){}, // 在組件實例進入頁面節點樹時執行
    detached(){}, // 在組件實例被從頁面節點樹移除時執行
})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章