Angular每個組件都存在一個生命周期,從創(chuàng)建,變更到銷毀。Angular提供組件生命周期鉤子,把這些關(guān)鍵時刻暴露出來,賦予在這些關(guān)鍵結(jié)點(diǎn)和組件進(jìn)行交互的能力,掌握生命周期,可以讓我們更好的開發(fā)Angular應(yīng)用
岳麓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!概述
每個接口都有唯一的一個鉤子方法,它們的名字是由接口名再加上ng前綴構(gòu)成的。比如,OnInit接口的鉤子方法叫做ngOnInit, Angular在創(chuàng)建組件后立刻調(diào)用它
生命周期執(zhí)行順序
ngOnChanges
在有輸入屬性的情況下才會調(diào)用,該方法接受當(dāng)前和上一屬性值的SimpleChanges對象。如果有輸入屬性,會在ngOnInit之前調(diào)用。
ngOnInit
在組件初始化的時候調(diào)用,只調(diào)用一次,在第一次調(diào)用ngOnChanges之后調(diào)用
ngDoCheck
在組件定義的屬性或方法變更時調(diào)用(用于臟值之檢測,非常耗性能,因?yàn)闀阉械膶傩院头椒ǘ紮z測一遍),會在ngOnChanges()和ngOnInit()之后
ngAfterContentInit
在組件內(nèi)容初始化之后調(diào)用,在第一次ngDoCheck之后調(diào)用,只調(diào)用一次
ngAfterContentChecked
在組件每次檢查內(nèi)容放生變更時調(diào)用。在ngAfterContentInit和每次ngDoCheck之后調(diào)用
ngAfterViewInit
在組件相應(yīng)的視圖初始化之后調(diào)用,第一次ngAfterContentChecked之后調(diào)用,只調(diào)用一次
ngAfterViewChecked
在組件每次檢查視圖發(fā)生變更時調(diào)用。ngAfterViewInit和每次ngAfterContentChecked之后調(diào)用。
ngOnDestroy
在組件銷毀前調(diào)用,做一些清理工作,比如退訂可觀察對象和移除事件處理器,以免導(dǎo)致內(nèi)存泄漏。
上面代碼書寫是按順序的,看下面控制臺打印
現(xiàn)在我們鉤子函數(shù)的順序打亂,在看看代碼
控制臺輸出跟上面是一樣的
constructor和ngOnInit
constructor是ES6中class中新增的屬性,當(dāng)class類實(shí)例化的時候調(diào)用constructor,來初始化類。Angular中的組件就是基于class類實(shí)現(xiàn)的,在Angular中,constructor用于注入依賴。
ngOnInit是Angular中生命周期的一部分,在constructor后執(zhí)行。在Angular中用于初始化變量和數(shù)據(jù)綁定等
NgChanges
當(dāng)我們監(jiān)聽了OnChanges鉤子。 一旦檢測到該組件(或指令)的輸入屬性發(fā)生了變化,Agular就會調(diào)用ngOnChanges()方法
效果演示
DoCheck
當(dāng)組件中屬性或函數(shù)發(fā)生變化時DoCheck會執(zhí)行臟值檢測,遍歷所有變量
效果演示
個人學(xué)習(xí)心得,大神路過,不喜勿噴😊,如果代碼有錯誤,歡迎糾正同時也歡迎交流
感謝閱讀,希望能幫助到大家,也希望大家多多支持創(chuàng)新互聯(lián)建站!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、建站服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。