1.angular 組件生命周期鉤子執行程序
組件初始化程序中,生命周期鉤子執行順序:
- constructor()建構式,初始化class,(constructor不屬于Angular生命周期鉤子的范疇,這里只是說明組件組件初始化會先呼叫建構式),
- ngOnChanges()--如果組件沒有輸入屬性(@Input()),或者使用時沒有提供任何輸入屬性,那么angular不會呼叫它;會呼叫多次,
- ngOnInit()--只呼叫一次,一般用來初始化資料,如請求資料,
- ngDoCheck()--緊跟在每次執行變更檢測時的ngOnChanges()和首次執行變更檢測的ngOnInit()后呼叫;會呼叫多次,
- ngAfterContentInit()--當Angular把外部內容投影進組件視圖或指令所在的視圖之后呼叫,第一次ngDoCheck()之后呼叫,只呼叫一次,
- ngAfterContentChecked()--每當Angular檢查完被投影到組件或指令中的內容之后呼叫,在ngAfterContentInit()和每次ngDoCheck()之后呼叫,會呼叫多次,
- ngAfterViewInit()--當Angular初始化玩玩組件視圖及其子視圖之后呼叫,只呼叫一次,
- ngAfterViewChecked()--當Angular做完組件視圖和子視圖的變更檢測之后呼叫;在ngAfterViewInit()和每次ngAfterContentChecked()之后呼叫,會呼叫多次,
- ngOnDestroy()--當Angular每次銷毀組件或指令之前呼叫并清掃,在這里取消訂閱可觀察物件和分離事件處理器,以防記憶體泄漏,

2.angular 父子組件生命周期鉤子程序
父子組件生命周期鉤子執行順序,如下圖所示
1.首先呼叫父組件的建構式,然后呼叫子組件的建構式,
2.當呼叫父組件的ngAfterContentChecked()鉤子之后,會呼叫子組件的生命周期函式,
3.子組件的ngAfterContentChecked()鉤子執行完之后,會在呼叫子組件的子組件的生命周期鉤子(如果有的話),
4.子組件執行ngAfterViewChecked()鉤子后,父組件繼續執行其余的生命周期鉤子,
5.當發生變更檢測時,父組件先觸發ngDoCheck() => ngAfterContentChecked(),然后子組件觸發 ngOnChanges() => ngDoCheck() => ngAfterContentChecked() => ngAfterViewChecked(),最后父組件呼叫ngAfterViewChecked(),

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532607.html
標籤:其他
