angualr4生命週期鉤子

2021-09-16 12:34:55 字數 1936 閱讀 1567

理解

angular提供了生命週期鉤子,把這些關鍵生命時刻暴露出來,賦予我們在它們發生時採取行動的能力。可以將鉤子函式理解為在合適的時候做合適的事情。

鉤子函式

ng4主要提供了8個鉤子函式:

ngonchanges

@input屬性(輸入屬性)發生變化時,會呼叫。非此屬性,不會呼叫。

當輸入屬性為物件時,當物件的屬性值發生變化時,不會呼叫,當物件的引用變化時會觸發。

先於ngoninit呼叫。

ngoninit

只執行一次,dom操作可放在其中。(最常用)
ngdocheck

每次發生變更檢測時會被呼叫

ngdocheck() 是angular中的變更檢測機制.它由 zone.js 來實現的.其行為是只要你的angular中的某個元件發生非同步事件.就會檢查整個元件樹,以保證元件屬性的變化或頁面的變化是同步的.所以 ngdocheck() 的觸發相當頻繁的.並且是我們無法預料到的.也許我們在頁面上的乙個無意識操作,就會觸發幾個甚至幾十個的 ngdocheck() 生命週期鉤子.

ngaftercontentinit

在元件內容初始化之後呼叫
ngaftercontentchecked

內容投影:父元件寫在子標籤之間的內容會被渲染到子模板的ng-content中去,類似vue的slot

元件及子元件每次檢查內容時呼叫

當父子元件都有該鉤子時,父元件先執行。

ngafterviewint

元件相應的檢視初始化之後呼叫
ngafterviewchecked

元件及子元件每次檢查檢視時呼叫

當父子元件都有該鉤子時,子元件先執行。

ngafterviewchecked與ngafterviewint中不允許修改繫結的屬性(@input屬性),否則丟擲異常

ngondestory

銷毀,事件解綁。
3.執行順序

父元件:

元件模板

}

元件@component()

export class fathercomponent implements oninit

ngoninit()

ngonchanges()

ngdocheck ()

ngaftercontentinit()

ngaftercontentchecked()

ngafterviewinit()

ngafterviewchecked()

}

子元件

@component()

export class soncomponent implements oninit

ngoninit()

ngonchanges ()

ngdocheck ()

ngaftercontentinit()

ngaftercontentchecked()

ngafterviewinit()

ngafterviewchecked()

}

看列印結果:

當在父元件的input中輸入內容時,會列印如下結果:

看到有人說只有當使用內容投影時才會呼叫ngafterconentchecked,當上面的裡面的**很顯然是沒用ng-content的,不知道該怎麼解釋這個ngafterconentchecked。

Angular學習 三 生命週期鉤子

angular提供了生命週期鉤子,把這些關鍵生命時刻暴露出來,賦予我們在它們發生時採取行動的能力。可以將鉤子函式理解為在合適的時候做合適的事情。官方給出的解釋是 每個元件都有乙個被 angular 管理的生命週期。angular 建立它,渲染它,建立並渲染它的子元件,在它被繫結的屬性發生變化時檢查它...

Angular學習筆記30 生命週期鉤子

angular 提供了生命週期鉤子,並把元件的關鍵生命時刻 初始化,發生變化,銷毀時等 暴露出來,讓開發者通過這些關鍵的生命週期時刻,更好的作出更好的邏輯處理。ngoninit 這個生命週期鉤子是最常見的乙個生命週期鉤子,在使用angular cli建立乙個新的元件的時候,angular cli會自...

1 生命週期

not running 非執行狀態 not running inactive active background suspended inactive 前台非活動狀態 active 前台活動狀態 background 後台狀態 suspended 掛起狀態 not running inactive ...