指令和組件的實例有一個生命週期:新建、更新和銷燬。
每一個接口都有惟一的一個鉤子方法,它們的名字是由接口名加上 ng
前綴構成的。好比,OnInit
接口的鉤子方法叫作ngOnInit
。
指令和組件
ngOnInit
:當Angular初始化完成數據綁定的輸入屬性後,用來初始化指令或者組件。
ngOnChanges
:當Angular設置了一個被綁定的輸入屬性後觸發。該回調方法會收到一個包含當前值和原值的changes
對象。
ngDoCheck
:用來檢測全部變化(不管是Angular自己能檢測仍是沒法檢測的),並做出相應行動。在每次執行「變動檢測」時被調用。
ngOnDestory
:在Angular銷燬指令或組件以前作一些清理工做,好比退訂可觀察對象和移除事件處理器,以避免致使內存泄漏。
只適用於組件
ngAfterContentInit
:當Angular把外來內容投影進本身的視圖以後調用。
ngAfterContentChecked
:當Angular檢查完那些投影到本身視圖中的外來內容的數據綁定以後調用。
ngAfterViewInit
:在Angular建立完組件的視圖後調用。
ngAfterViewChecked
:在Angular檢查完組件視圖中的綁定後調用。code
ngOnChanges
:當被綁定的輸入屬性的值發生變化時調用,首次調用必定會發生在ngOnInit
以前。ngOnInit
:在第一輪ngOnChanges
完成以後調用。ngDoCheck
:在每一個Angular變動檢測週期中調用。ngAfterContentInit
:當把內容投影進組件以後調用。ngAfterContentChecked
:每次完成被投影組件內容的變動檢測以後調用。ngAfterViewInit
:初始化完組件及其子視圖以後調用。ngAfterViewChecked
:每次作完組件視圖和子視圖的變動檢測以後調用。ngOnDestroy
:當Angular每次銷燬指令/組件以前調用。