angular的生命週期函式 面試題

2021-10-04 21:57:10 字數 1911 閱讀 4364

angular 指令的生命週期,它是用來記錄指令從建立、應用及銷毀的過程。angular 提供了一系列與指令生命週期相關的鉤子,便於我們監控指令生命週期的變化,並執行相關的操作。angular 中所有的鉤子如下圖所示:

生命週期函式

作用ngonchanges()

初始化輸入屬性 ,angular(重新)設定資料繫結輸入屬性時的響應。該方法接收 ******changes 當前和先前屬性值的物件。ngoninit() 在乙個或多個資料繫結輸入屬性發生更改 之前和之後呼叫。

ngoninit()

初始化其他屬性,在 angular 首次顯示資料繫結屬性並設定指令/元件的輸入屬性後初始化指令/元件。在第一次之後 呼叫一次 ngonchanges() 。

ngdocheck()

元件變更檢測,檢測 angular 無法或不會自行檢測的更改並採取相應措施。在每次更改檢測執行期間,在 ngonchanges() 和之後立即呼叫 ngoninit()。

ngaftercontentinit()

投影內容初始化,在 angular 將外部內容投影到元件的檢視/指令所在的檢視後進行響應。在第一次之後 呼叫一次 ngdocheck()。if you want to change the child component』s props, you cannot do it in 『ngafterviewinit』, you need to do it in 『ngaftercontentinit』.

ngaftercontentchecked()

針對投影內容的變更檢測在 angular 檢查投射到指令/元件中的內容後響應。在 ngaftercontentinit() 隨後和隨後的每一次呼叫之後 ngdocheck()。

ngafterviewinit()

初始化完元件檢視及其子檢視之後呼叫 ,在 angular 初始化元件的檢視和子檢視/指令所在的檢視後響應。在第一次之後 呼叫一次 ngaftercontentchecked()。一般進行 dom 操作

ngafterviewchecked()

每次做完元件檢視和子檢視的變更檢測之後呼叫,在 angular 檢查元件的檢視和子檢視/指令所在的檢視後響應。在 ngafterviewinit() 隨後和隨後的每一次呼叫之後 ngaftercontentchecked()。

ngondestroy()

當angular每次銷毀指令/元件之前呼叫並清掃。 在這兒反訂閱可觀察物件和分離事件處理器,以防記憶體洩漏,就在 angular 破壞指令/元件之前進行清理。取消訂閱 observable 並分離事件處理程式以避免記憶體洩漏。在 angular 破壞指令/元件之前 呼叫。元件銷毀時執行

指令與元件共有的鉤子

ngonchanges

ngoninit

ngdocheck

ngondestroy

元件特有的鉤子

ngaftercontentinit

ngaftercontentchecked

ngafterviewinit

ngafterviewchecked

呼叫順序

ngonchanges - 當資料繫結輸入屬性的值發生變化時呼叫

ngoninit - 在第一次 ngonchanges 後呼叫

ngdocheck - 自定義的方法,用於檢測和處理值的改變

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

ngaftercontentchecked - 元件每次檢查內容時呼叫

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

ngafterviewchecked - 元件每次檢查檢視時呼叫

ngondestroy - 指令銷毀前呼叫

Angular的生命週期函式

中文官網位址對於生命週期的說明 生命週期函式 觸發時機 ngonchanges 設定或重新設定資料繫結的輸入屬性時響應 ngoninit 只執行一次 第一次顯示資料繫結和設定指令 元件的輸入屬性之後,初始化指令 元件 ngdocheck 檢測,並在發生 angular 無法或不願意自己檢測的變化時作...

Angular 中的生命週期函式

生命週期函式通俗的講就是元件建立 元件更新 元件銷毀的時候會觸發的一系列的方法。建構函式中除了使用簡單的值對區域性變數進行初始化 之外,什麼都不應該做。非生命週期函式 constructor 當 angular 重新 設定資料繫結輸入屬性時響應。該方法接受當前和上一屬性值的 changes 物件 當...

生命週期函式

另外說一下生命週期函式 virtual void onenter virtual void onentertransitiondidfinish virtual void onexit 這3個是遇到對應情況時呼叫的。在cpp檔案裡如果把它們示例了,你可以在開始時放 結束時關閉 等等。如果他下面的之類...