Angular 組件的生命週期:方法、不同類型和接口

已發表: 2021-06-21

目錄

介紹

允許為 Web 和移動設備構建應用程序的客戶端平台是有角度的。 它於 2009 年由 Google 推出。 最初,該平台支持 Javascript 和 HTML,後來被 Angular TypeScript 和其他腳本語言取代。

許多版本的 Angular 已經用 AngularJS 開發到 Angular-7 等等。 不管是什麼版本,角度通常是由組件組成的。 因此,了解組件對於清楚地了解組件的加工過程非常重要。

但是,Angular 的每個組件都有其特定的生活方式,其中Angular 生命週期的每個階段都會經歷初始化步驟到銷毀步驟。

本文將重點關注 Angular 不同組件的生命週期事件。

生命週期方法

Angular中的組件具有不同的生命週期和一定數量的階段,通過這些階段執行初始化到銷毀的過程。 組件的不同階段稱為“生命週期掛鉤事件”。

為了控制 Angular 內的組件,開發人員可以在應用程序的不同階段使用鉤子事件。 存在八種類型的生命週期鉤子事件,開發人員可以在 Angular 的任何組件中使用它們。 與特定生命週期事件對應的函數調用必須由開發人員添加。

每個組件都必須存在構造函數方法,因為組件屬於 typescript 類。 在執行任何角度生命週期鉤子之前,總是首先執行組件類構造函數 要添加任何依賴項,構造函數可用於所需任務。 角度生命週期掛鉤按特定順序執行。

每當 Angular 中的任何組件初始化時,都會創建並呈現根組件。 然後產生組件的繼承者。

生命週期階段的劃分發生在兩個階段:一個階段鏈接到組件,另一個階段鏈接到組件的子組件。

另請閱讀:令人興奮的 Angular 項目創意

不同類型的生命週期鉤子

1. ngOnChanges –

每當輸入的控制值發生變化時,都會調用此事件。 綁定的屬性值的更改會觸發此事件。 包含更改的數據映射,即 SimpleChange 中屬性的先前值和當前值。

  • 特性
    • 具有輸入的組件可以使用該方法。
    • 只要輸入值發生變化,就會調用該方法。

2.ngOnInit

在組件初始化或綁定數據的屬性顯示後,初始化ngOnInit的事件。 該事件僅在 ngOnChanges 事件之後調用一次。 因此,該事件主要負責初始化組件數據。

  • 特性
    • 組件中的數據由該事件初始化。
    • 設置輸入值時調用該方法。
    • 默認情況下,Angular CLI 已將此鉤子添加到其所有組件中。
    • 該方法只能調用一次。

3.ngDoCheck

檢查角度組件的輸入屬性後,觸發 ngDoCheck 事件。 它主要用於檢測或處理 angular 無法檢測到的任何變化。 根據開發者的邏輯,可以實現校驗。 因此,事件允許執行任何自定義更改邏輯或算法以檢測任何組件中的更改。

  • 特性
    • 對於角度變化的任何檢測,運行此方法。
    • 調用該方法來檢測更改。

4. ngAfterContentInit

在組件視圖內投影外部內容後,調用事件 ngAfterContentInit。 對於第一次檢查所有組件綁定,此方法將首次執行。 它的執行在方法 ngDoCheck() 執行後立即執行。 子組件通常與此方法鏈接。

  • 特性
    • 最初,該方法在 ngDoCheck 之後調用。
    • 工作由內容初始化完成。

5. ngAfterContentChecked

將外部內容投影到組件中之後,檢查投影內容。 每次通過角度變化檢測機制檢查內容時都會調用該方法。 它在 ngAfterContentInit() 方法執行之後執行。 此外,該方法在後續執行 ngDoCheck() 之後執行。 它通常與子組件的初始化相關聯。

  • 特性

    • 首先,該方法等待 ngContentInit 完成。
    • 在 ngDocheck 之後執行。

6.ngAfterViewInit

隨著angular組件和子組件的初始化,調用ngAfterViewInit方法。 ngAfterContentChecked 方法執行後,第一次調用 ngAfterViewInit 方法。 該方法僅適用於 angular 的組件。

  • 特性

    • 只有在組件的視圖初始化後才生成一次對該方法的調用。

7. ngAfterViewChecked

在 ngAfterViewInit 方法之後,調用 ngAfterViewChecked 方法。 每當 Angular 的變化檢測方法對組件進行檢查時,就會執行 ngAfterViewChecked 方法。 該方法也在 ngAfterContentChecked() 執行後執行。 此外,當子組件的指令綁定發生變化時,該方法將被執行。

  • 特性

    • 調用是在初始化和檢查之後生成的。
    • 該方法的工作在 ngDocheck 的每個方法完成後開始。

8. ngOnDestroy

該方法在 angular 銷毀組件之前調用。 為了避免內存洩漏的情況,該方法能夠分離事件處理程序,並且在取消訂閱 observable 時也很有用。 只有一次,該方法被調用以從 DOM 中刪除組件。

  • 特性

    • 該調用是在從 DOM 中刪除組件之前生成的。

Angular 生命週期中的接口

組件的類可用於定義角度生命週期掛鉤方法。 但是,在接口的幫助下,可以調用方法。 接口名稱與方法名稱類似,省略了前綴“ng”。 這是因為生命週期鉤子的每個方法都存在 typescript 接口。 比如ngOnInit的接口叫做OnInit。 只有一個生命週期鉤子的事件是通過一個接口定義的。 此外,當接口未實現時,編譯器不會拋出任何編譯錯誤。

例子:

已經展示了一個實現生命週期鉤子的示例。 下面顯示的代碼將放在文件“app.component.ts”中。 角度生命週期示例 資源

它展示瞭如何調用生命週期鉤子 ngOnInit。

將模塊添加到存儲庫“ng-example”的示例如下所示。 模塊名稱是生命週期鉤子,其中包含組件(父和子),例如“ngOnChanges”,稱為更改示例。 為了路由到組件生命週期鉤子,路由被添加到側邊欄,組件“更改示例”被放置在該組件內。 這顯示了父組件和子組件。

然後,生命週期鉤子的所有方法將與名為 console.log() 的事件鉤子的名稱一起添加到兩個組件中。 子被添加到子控制台的語句中,用於區分父組件和子組件。

父組件的外觀如下所示。

角度生命週期示例 1

資源

子組件是相同的,但它是 console.log 語句的一部分。

運行 ng serve 將顯示事件觸發的順序。 它描述了執行方法的順序。 組件的初始化、其內容、內容的檢查、初始化、子組件的檢查。 緊隨其後的是組件視圖被初始化和檢查的最終聲明。

另請閱讀:如何運行 Angular 項目

在下一步中,父組件添加了一個簡單的事件,其中對子組件的輸入值進行了操作。 為此,將向父組件添加一個按鈕,單擊該按鈕會將數字增加一。 增量將作為輸入傳遞給孩子並顯示出來。

角度生命週期示例

資源

父 html 的外觀是

角度生命週期 輸入“num”顯示為:

<h4>{{num}}</h4>

單擊按鈕“+”時,將觸發一個事件,其中生命週期掛鉤的事件將在組件上執行。 當“ngOnChanges”檢測到子級的輸入值時,會在子級中觸發事件“ngOnChanges”。

從世界頂級大學在線學習軟件課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

本文概述了角度分量的各個階段。 討論了角度生命週期鉤子進行的特定順序,並顯示了此類事件的應用。

要拓寬此類軟件組件的應用,您可以查看upGrad的課程,“軟件開發中的執行 PG 程序 – 全棧開發專業化”。 任何 21 至 45 歲的中級專業人員都可以參加經IIIT-Bangalore認證的課程。 在線課程提供現場講座、實踐經驗、IIIT-B 校友身份以及 4 個月的免費數據科學和機器學習認證的好處。 如果您仍然希望獲得您夢寐以求的工作,請參加確保在頂級行業獲得職位的課程。 我們的團隊歡迎任何詢問。

什麼是角Js?

Angular 是一個事件驅動的 JavaScript 框架。 AngularJS 使用模型-視圖-控制器 (MVC) 模式的概念來開發單頁應用程序。 AngularJS 是一個與框架無關的框架,它可以與另一個框架(如 Backbone 或 Knockout)結合使用。 AngularJS 接收模型-視圖-控制器 (MVC) 模式。 AngularJS 還公開了一個輕量級範圍對象,可以注入到任何 JavaScript 構造函數中。 AngularJS 應用程序主要是用 HTML(或 HAML 文件)和 CSS(或 SASS 文件)構建的,它們幾乎不可能通過瀏覽器的控制台進行調試。 該應用程序是使用以 TypeScript 語言編寫的 JavaScript 文件構建的。 AngularJS 提供的事件驅動編程模型允許開發人員初始化、修改和運行 HTML 文檔中任何元素的代碼。

Angular 中組件的生命週期是什麼?

Angular 是一個 MVW(Model-View-Whatever)框架,它使用了一種叫做組件的東西。 組件是包含狀態、行為、樣式和模板的單元。 組件的生命週期總是從組件的創建開始,到組件被銷毀時結束。 在 Angular 中,組件的生命週期非常簡單。 它是這樣的 - 1. 組件被創建。 2. 組件已鏈接。 3. 發生變化檢測。 4. 組件被破壞。 當一個組件第一次初始化時,它的視圖和模板將可用(來自模板綁定)並準備好顯示。 當組件的 ngOnChanges() 事件處理程序檢測到其綁定之一的輸入值更改時,組件將重新渲染其視圖並重新顯示其模板。

Angular 中的生命週期鉤子是什麼?

Angular 有生命週期鉤子幫助你擴展默認的控制器/服務/工廠。 將生命週期鉤子視為 Angular 控制器/服務/工廠的狀態。 生命週期鉤子是 Angular 提供的方法,用於在 Angular 應用程序的生命週期中的特定時間添加一些功能。