一、 Angular中的生命周期函數
官方文檔:https://www.angular.cn/guide/lifecycle-hooks 生命周期函數通俗的講就是組件創建、組件更新、組件銷毀的時候會觸發的一系列的方法。
當 Angular 使用構造函數新建一個組件或指令后,就會按下面的順序在特定時刻調用這些 生命周期鈎子方法。
constructor |
構造函數中除了使用簡單的值對局部變量進行初始化 之外,什么都不應該做。 (非生命周期函數) |
ngOnChanges() |
當 Angular(重新)設置數據綁定輸入屬性時響應。該 方法接受當前和上一屬性值的 SimpleChanges 對象 當被綁定的輸入屬性的值發生變化時調用,首次調用一 定會發生在 ngOnInit() 之前。 |
ngOnInit() |
在 Angular 第一次顯示數據綁定和設置指令/組件的輸 入屬性之后,初始化指令/組件。 使用 ngOnInit() 有兩個原因: 1、在構造函數之后馬上執行復雜的初始化邏輯 |
備。
有經驗的開發者會認同組件的構建應該很便宜和安全。
|
|
ngDoCheck() |
檢測,並在發生 Angular 無法或不願意自己檢測的變 化時作出反應。在每個 Angular 變更檢測周期中調用, ngOnChanges() 和 ngOnInit() 之后。 |
ngAfterContentInit() |
當把內容投影進組件之后調用。第一次 ngDoCheck() 之 后調用,只調用一次。 |
ngAfterContentChecked() |
每次完成被投影組件內容的變更檢測之后調用。 ngAfterContentInit() 和每次 ngDoCheck() 之后調用。 |
ngAfterViewInit() |
初始化完組件視圖及其子視圖之后調用。第一 次 ngAfterContentChecked() 之后調用,只調用一次。 |
ngAfterViewChecked() |
每次做完組件視圖和子視圖的變更檢測之后調用。 ngAfterViewInit()和每次 ngAfterContentChecked() 之后 調用。 |
ngOnDestroy() |
當 Angular 每次銷毀指令/組件之前調用並清掃。在這 兒反訂閱可觀察對象和分離事件處理器,以防內存泄 漏。 |