Angular學習(二):組件-生命週期

每一個組件都有一個被 Angular 管理的生命週期。Angular 建立它,渲染它,建立並渲染它的子組件,在它被綁定的屬性發生變化時檢查它,並在它從 DOM 中被移除前銷燬它。Angular 提供了生命週期鉤子,開發者能夠介入該生命週期中的這些關鍵時刻。除了那些組件內容和視圖相關的鉤子外,指令有相同生命週期鉤子。函數

生命週期概覽

每一個接口(接口是可選的)都有惟一的一個鉤子方法,它們的名字是由接口名再加上 ng 前綴構成的。當 Angular 使用構造函數新建一個組件或指令後,就會按下面的順序在特定時刻調用這些生命週期鉤子方法:code

鉤子 用途及時機
ngOnChanges() 當 Angular(從新)設置數據綁定輸入屬性時響應。 該方法接受當前和上一屬性值的 SimpleChanges 對象在 ngOnInit() 以前以及所綁定的一個或多個輸入屬性的值發生變化時都會調用。
ngOnInit() 在 Angular 第一次顯示數據綁定和設置指令/組件的輸入屬性以後,初始化指令/組件。在第一輪 ngOnChanges() 完成以後調用,只調用一次
ngDoCheck() 檢測,並在發生 Angular 沒法或不肯意本身檢測的變化時做出反應。在每一個變動檢測週期中,緊跟在 ngOnChanges() 和 ngOnInit() 後面調用。
ngAfterContentInit() 沒當 Angular 把外部內容投影進組件/指令的視圖以後調用。第一次 ngDoCheck() 以後調用,只調用一次
ngAfterContentChecked() 每當 Angular 完成被投影組件內容的變動檢測以後調用。ngAfterContentInit() 和每次 ngDoCheck() 以後調用
ngAfterViewInit() 每當 Angular 初始化完組件視圖及其子視圖以後調用。第一次 ngAfterContentChecked() 以後調用,只調用一次
ngAfterViewChecked() 每當 Angular 作完組件視圖和子視圖的變動檢測以後調用。ngAfterViewInit() 和每次 ngAfterContentChecked() 以後調用。
ngOnDestroy() 沒當 Angular 每次銷燬指令/組件以前調用並清掃。 在這兒反訂閱可觀察對象和分離事件處理器,以防內存泄漏。在 Angular 銷燬指令/組件以前調用。
相關文章
相關標籤/搜索