天天看點

Angular 13 釋出:全面棄用 View EngineAngular 13 新特性關于 Angular

Angular 13 新特性

棄用 View Engine

Angular 13 宣布不再支援 View Engine,同時全面啟用 Ivy,Ivy 是 Angular 下一代編譯和渲染引擎,Angular 在最近的版本中一直支援它。對于決定棄用 View Engine 的原因,Angular 團隊此前曾表示大多數 Angular 開發人員已轉而使用 Ivy。同時根據谷歌開發者 Thompson 的說法,此更新意味着“團隊可以期待更快的編譯,因為不再包含中繼資料和摘要檔案。”

Angular Package Format (APF) 的更改

  • 删除了舊的輸出格式,包括來自 APF 的 View Engine 特定中繼資料;
  • 使用最新版本的 APF 建構的庫将不再需要使用 ngcc;
  • 更新 APF 以支援 Node Package Exports。

Component API 的更新

在 Angular v13 更改之前,動态建立元件需要大量樣闆代碼。 新的 API 消除了将

ComponentFactoryResolver

注入構造函數的需要。 Ivy 創造了使用

ViewContainerRef.createComponent

執行個體化元件的機會,而無需建立關聯的工廠。

結束對 IE11 的支援

結束 IE11 的支援後:

  • Angular 可以通過原生的 Web API 使用更現代浏覽器功能;
  • 可以删除 IE 特定的 polyfills 和代碼路徑使得應用程式更小,加載速度更快;
  • 移除差異加載的需要;
  • 運作 ng update 将自動删除這些特定于 IE 的 polyfills 并在項目遷移期間減少包大小。

需要注意的是,現有項目仍需支援 IE11 使用者的開發者可繼續使用 Angular 12,Angular 12 版本将一直維護到 2022 年 11 月 。

Angular CLI 的改進

Angular 13 項目中預設使用持久建構緩存,要啟用此功能,可以在 angular.json 中添加如下配置:

"$schema": "...",
    "cli": {
        "cache": {
            "enabled": true,
            "path": ".cache",
            "environment": "all"
        }
    }
    ...
}           

架構的更改和依賴項更新

  • 使用 ng new 建立的應用程式預設使用 RxJS 7.4 版本 ;
  • 使用 RxJS v6.x 的現有應用程式必須使用該 npm install [email protected] 指令手動更新,可以在此處閱讀遷移說明;
  • 支援 TypeScript 4.4;

Angular 測試的改進

  • TestBed 現在在每次測試後能更好地銷毀測試子產品和環境;
  • DOM 在每次測試後都會被清除。

Angular 元件更新

  • 所有基于 MDC 的元件都經過評估,在對​​比度、觸摸目标、ARIA 等方面滿足更高的 a11y 标準。

可在

此處

閱讀有關可通路性 (a11y) 标準的拉取請求

社群貢獻

  • 動态啟用/禁用驗證器
  • 取消導航後恢複 history

其他更新

本次版本更新還包括擴充對 Adobe Fonts 的支援等,有關更詳細的概述可以檢視完整更新公告:

更新公告:

https://blog.angular.io/angular-v13-is-now-available-cce66f7bc296

更新指南:

https://update.angular.io/

關于 Angular

AngularJS 誕生于 2009 年,由 Misko Hevery 等人建立,是一款建構使用者界面的前端架構,後為 Google 所收購。AngularJS 是一個應用設計架構與開發平台,使得開發現代的單頁面應用程式(SPAs:Single Page Applications)變得更加容易:

  • AngularJS 把應用程式資料綁定到 HTML 元素;
  • AngularJS 可以克隆和重複 HTML 元素;
  • AngularJS 可以隐藏和顯示 HTML 元素;
  • AngularJS 可以在 HTML 元素”背後”添加代碼;
  • AngularJS 支援輸入驗證。

AngularJS 有諸多特性:

  • MVC;
  • 子產品化與依賴注入;
  • 雙向資料綁定;
  • 指令與 UI 控件。

Angular 是 AngularJS 的重寫,Angular2 以後官方命名為 Angular,2.0 以前版本稱為 AngualrJS。AngularJS 是用 JavaScript 編寫,而 Angular 采用 TypeScript 語言編寫,是 ECMAScript 6 的超集。因不能簡單遷移,是以 AngularJS 和 Angular 成為兩個獨立的架構。

目前,Angular 在前端架構中占據重要地位,經過嚴格測試已由 Google 和 Microsoft 等公司投入生産使用,相關線上資源也十分豐富。但是從學習角度說,Angular 的學習曲線最為陡峭,開發者需熟悉 TypeScript 才能開展工作,對于新手而言并不是最佳選擇,更适合在團隊中發揮作用。

繼續閱讀