angular每個元件都存在乙個生命週期,從建立,變更到銷毀。angular提供元件生命週期鉤子,把這些關鍵時刻暴露出來,賦予在這些關鍵結點和元件進行互動的能力,掌握生命週期,可以讓我們更好的開發angular應用 概述
每個介面都有唯一的乙個鉤子方法,它們的名字是由介面名再加上ng字首構成的。比如,oninit介面的鉤子方法叫做ngoninit, angular在建立元件後立刻呼叫它
importfrom'@angular/core'生命週期執行順序,templateurl: './parent.component.html'
,styleurls: ['./parent.component.css']
})export classparentcomponentimplementsoninit
}
ngonchanges
在有輸入屬性的情況下才會呼叫,該方法接受當前和上一屬性值的******changes物件。如果有輸入屬性,會在ngoninit之前呼叫。
ngoninit
在元件初始化的時候呼叫,只呼叫一次,在第一次呼叫ngonchanges之後呼叫
ngdocheck
在元件定義的屬性或方法變更時呼叫(用於髒值之檢測,非常耗效能,因為會把所有的屬性和方法都檢測一遍),會在ngonchanges()和ngoninit()之後
ngaftercontentinit
在元件內容初始化之後呼叫,在第一次ngdocheck之後呼叫,只呼叫一次
ngaftercontentchecked
在元件每次檢查內容放生變更時呼叫。在ngaftercontentinit和每次ngdocheck之後呼叫
ngafterviewinit
在元件相應的檢視初始化之後呼叫,第一次ngaftercontentchecked之後呼叫,只呼叫一次
ngafterviewchecked
在元件每次檢查檢視發生變更時呼叫。ngafterviewinit和每次ngaftercontentchecked之後呼叫。
ngondestroy
在元件銷毀前呼叫,做一些清理工作,比如退訂可觀察物件和移除事件處理器,以免導致記憶體洩漏。
importfrom'@angular/core'上面**書寫是按順序的,看下面控制台列印,templateurl: './childen.component.html'
,styleurls: ['./childen.component.css']
})export classchildencomponent
ngonchanges(changes: ******changes)
ngoninit()
ngdocheck()
ngaftercontentinit()
ngaftercontentchecked()
ngafterviewinit()
ngafterviewchecked()
ngondestroy()
}
現在我們鉤子函式的順序打亂,在看看**
importfrom'@angular/core'控制台輸出跟上面是一樣的。,templateurl: './childen.component.html'
,styleurls: ['./childen.component.css']
})export classchildencomponent
ngondestroy()
ngaftercontentinit()
ngaftercontentchecked()
ngafterviewinit()
ngonchanges(changes: ******changes)
ngafterviewchecked()
ngdocheck()
ngoninit()
}
constructor和ngoninit
constructor是es6中class中新增的屬性,當class類例項化的時候呼叫constructor,來初始化類。angular中的元件就是基於class類實現的,在angular中,constructor用於注入依賴。
export classchildencomponentngoninit是angular中生命週期的一部分,在constructor後執行。在angular中用於初始化變數和資料繫結等}
export classchildenconent}
importfrom'@angular/core'效果演示,templateurl: './childen.component.html'
,styleurls: ['./childen.component.css']
})export classchildencomponentimplementsonchanges
ngonchanges(changes: ******changes)
}
docheck
當元件中屬性或函式發生變化時docheck會執行髒值檢測,遍歷所有變數。
importfrom'@angular/core'效果演示,templateurl: './parent.component.html'
,styleurls: ['./parent.component.css']
})export classparentcomponent ;
ngdocheck()
}
個人學習心得,大神路過 ,不喜勿噴
Angular2 生命週期
元件生命週期鉤子 指令和元件的例項有乙個生命週期 新建 更新和銷毀。每個介面都有唯一的乙個鉤子方法,它們的名字是由介面名加上ng字首構成的。比如,oninit介面的鉤子方法叫做ngoninit。指令和元件 ngoninit 當angular初始化完成資料繫結的輸入屬性後,用來初始化指令或者元件。ng...
angular2 生命週期
ngonchanges 當資料繫結輸入屬性的值發生變化時呼叫 ngoninit 在第一次 ngonchanges 後呼叫 ngdocheck 自定義的方法,用於檢測和處理值的改變 ngaftercontentinit 在元件內容初始化之後呼叫 ngaftercontentchecked 元件每次檢查...
Angular學習 三 生命週期鉤子
angular提供了生命週期鉤子,把這些關鍵生命時刻暴露出來,賦予我們在它們發生時採取行動的能力。可以將鉤子函式理解為在合適的時候做合適的事情。官方給出的解釋是 每個元件都有乙個被 angular 管理的生命週期。angular 建立它,渲染它,建立並渲染它的子元件,在它被繫結的屬性發生變化時檢查它...