生命週期函式通俗的講就是元件建立、元件更新、元件銷毀的時候會觸發的一系列的方法。當 angular 使用建構函式新建乙個元件或指令後,就會按下面的順序在特定時刻呼叫這些生命週期鉤子方法。
當 angular 使用建構函式新建乙個元件或指令後,就會按下面的順序在特定時刻呼叫這些生命週期鉤子方法:
鉤子用途及時機
ngonchanges()
@input
屬性(輸入屬性)發生變化時,會呼叫。非此屬性,不會呼叫。當輸入屬性為物件時,當物件的屬性值發生變化時,不會呼叫,當物件的引用變化時會觸發。先於ngoninit()
呼叫。
ngoninit()
只執行一次,dom操作可放在其中。(最常用)
ngdocheck()
每次發生變更檢測時會被呼叫
ngdocheck()
是angular中的變更檢測機制.它由 zone.js 來實現的.其行為是只要你的angular中的某個元件發生非同步事件.就會檢查整個元件樹,以保證元件屬性的變化或頁面的變化是同步的.所以ngdocheck()
的觸發相當頻繁的.並且是我們無法預料到的.也許我們在頁面上的乙個無意識操作,就會觸發幾個甚至幾十個的ngdocheck()
生命週期鉤子.
ngaftercontentinit()
在元件內容初始化之後,ngdocheck()
之後呼叫,只呼叫一次。
ngaftercontentchecked()
內容投影:父元件寫在子標籤之間的內容會被渲染到子模板的ng-content
中去,類似vue的slot,元件及子元件每次檢查內容時呼叫,當父子元件都有該鉤子時,父元件先執行。
ngafterviewinit()
當 angular 初始化完元件檢視及其子檢視之後呼叫。第一次ngaftercontentchecked()
之後呼叫,只呼叫一次。
ngafterviewchecked()
ngafterviewinit()
和每次ngaftercontentchecked()
之後呼叫。當父子元件都有該鉤子時,子元件先執行。ngafterviewchecked()
與ngafterviewint
中不允許修改繫結的屬性(@input
屬性),否則丟擲異常
ngondestroy()
每當 angular 每次銷毀指令/元件之前呼叫並清掃。 在這兒反訂閱可觀察物件和分離事件處理器,以防記憶體洩漏。在 angular 銷毀指令/元件之前呼叫。
Angular學習筆記
1.nodejs 2.npm 3.cnpm 4.yarn 4.vscode 1.建立專案的 命令 ng new project name style scss 引數 style 使用的css型別,可以是css,sacc,scss,less,預設值是css 2.初始化node modules 命令 1...
angular學習筆記
時隔一年之後重新學習angularjs,感慨良多。去年剛剛接觸web程式設計的時候,朋友告訴我angularjs很好用,於是在僅僅了解html和css開始學習angularjs,困難程度可想而之,而且並不明白其價值,武斷的認為通過服務端可以不需要angular之類的工具解決所有問題。一年之後,對js...
Angular 學習筆記 1
angular 是乙個興起的框架,還在不斷更新中,可能會出 2.0 版本。特點是易測試,雙向繫結,使用模板,能夠大幅度減少 量。因為其模組的思想,構建元件也很容易,可以到 ngmodules.org 上去尋找需要的模組。最簡單的例子 boostrap 方法決定了從何處開始將 html 作為 angu...