首頁  >  文章  >  web前端  >  淺談Angular10中的新功能

淺談Angular10中的新功能

青灯夜游
青灯夜游轉載
2021-04-06 11:14:452447瀏覽

本篇文章帶大家了解一下Angular10中的新功能。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談Angular10中的新功能

Angular 10是對流行的Web開發框架的主要升級,通常會在6月24日作為正式版本提供。正式版升級是基於Google開發的基於TypeScript的框架,與新版本相比,它更加重視質量,工具和生態系統的改進特徵。

Angular 10小於以前的Angular版本。新功能包括Angular Material UI元件庫中的新日期範圍選擇器和CommonJS導入警告。當與CommonJS打包的依賴項可能導致更大,更慢的應用程式一起使用時,CommonJS導入警告會警告開發人員,從而允許開發人員替換ECMAScript模組包。

相關教程推薦:《angular教程

此外,可選的嚴格設置,創建一個新的工作區時提供了一個更嚴格的專案設置ng new ,透過ng new -- strict 。啟用此標誌將使用新設定初始化新項目,以提高可維護性,幫助捕獲錯誤並允許CLI在應用程式上進行進階最佳化。

在哪裡下載Angular 10


您可以在GitHub上找到Angular 10的一般版本 。要更新目前的Angular安裝,可以執行以下命令:

ng update @angular/cli @angular/core

Angular 10的新功能


Angular 10的主要功能包括:

  • TSlib,包含說明函數的TypeScript執行時間函式庫,已更新為TSlib 2.0。用於TypeScript的TSLint靜態分析工具已更新為TSLint 6。
  • 新增了一個編譯器接口,用於包裝實際的ngtsc編譯器。特定於語言服務的編譯器使用專案介面管理多個類型檢查文件,並根據需要建立Scriptinfos。
  • 新專案的瀏覽器配置已更新,以排除較舊的,較少使用的瀏覽器。不支援Internet Explorer 9,Internet Explorer 10和Internet Explorer Mobile。
  • Angular軟體包格式不再包含ESM5或FESM5軟體包,在為Angular軟體包和庫運行yarnnpm install時,節省了下載和安裝時間。
  • 對於編譯器,已為屬性讀取和方法呼叫新增了名稱範圍。
  • EntryPointFinder ,這是一個基於程式的入口點查找器,可以從tsjconfig.json檔案指定的程式中的匯入中取得種子。當活動程式僅匯入一小部分已安裝的入口點時,這預計會比DirectoryWalkerEntryPointFinder更快。
  • 由於具有可疑的價值和效能問題,自動完成功能已從HTML實體(如&amp )中刪除。
  • 明確映射從閉包公開到devmode檔案。此功能針對必須將生產建置輸入轉換為等效devmode的開發工具。
  • 一項重大變更是,將ModuleWithProviders強制ModuleWithProviders 。為了使ModuleWithProviders模式與Ivy編譯和渲染管道一起使用,需要使用通用類型參數,但在此提交之前,View Engine允許省略通用類型。如果開發人員使用不含泛型類型的ModuleWithProviders ,則版本10遷移將更新程式碼。但是,如果開發人員使用View Engine並依賴忽略泛型類型的程式庫,則會發出建置錯誤。在這種情況下,ngcc將無濟於事,遷移將僅涵蓋應用程式程式碼。應該與圖書館作者聯繫以修復他們的圖書館。解決方法是,可以在tsconfig中將skipLibChecks設定為false或將應用程式更新為僅使用Ivy。
  • 現在有TypeScript 3.9的功能,並且刪除了對TypeScript 3.8的支援。這是一個重大變化。也不再支援TypeScript 3.6和TypeScript 3.7。
  • 類型檢查的效能已改進到編譯器cli。
  • 為了提高效能,已對basePaths的計算進行了延遲,因此僅在TargetedEntryPointFinder需要時才進行工作。以前,每當實例化查找程式時都會計算basePaths ,這在已經處理了目標入口點的情況下浪費了精力。
  • 支援合併多個翻譯檔。以前,每個語言環境僅允許一個翻譯文件。現在,使用者可以在每個語言環境中指定多個文件,並且每個文件的事務都將透過訊息傳遞ID合併。
  • 可以設定非同步鎖定逾時。這增加了對ngcc.config.js檔案的支持,用於設定retryAttemptsretryDelay選項。整合測試增加了新的超時檢查,並使用ngcc.config.js減少了超時時間,以防止測試花費太長時間。
  • 在一項重大變更中,有關未知元素的警告現在記錄為錯誤。雖然這不會破壞應用程序,但它可能會觸發一些期望透過console.error不記錄任何內容的工具。
  • 在另一個重大變更中,任何返回EMPTY解析器都會取消導航。為了讓導覽繼續進行,開發人員必須更新解析器以更新某些值,例如default!Empty
  • 在元資料中新增了依賴項資訊和ng-content選擇器。提議的編譯器功能將提供對諸如Angular Language Service之類的工具有用的附加元數據,並具有為庫中定義的指令/組件提供建議的能力。
  • 透過減少入口點清單的大小和清單中的快取技術來實現效能改進。另外,依賴項的快取是在入口點清單中完成的,並從那裡讀取,而不是每次都進行計算。以前,即使不需要處理入口點,ngcc(Angular Ivy相容性編譯器)也將解析入口點的檔案以計算依賴關係,這對於large_node模組將花費大量時間。
  • 為了提高ngcc性能,現在允許立即報告陳舊的鎖定檔案。此外,還將儲存已解析的tsconfig檔案的快取副本,如果tsconfig路徑相同,則可以重複使用該副本。
  • 在一項重大變更中,邏輯已更新,涉及格式化午夜的白天。當使用bB格式程式碼格式化時間時,呈現的字串無法正確處理跨越幾天的白天。相反,邏輯回落到AM的預設情況。此邏輯已更新,因此它可以匹配在午夜之後的一天中的時間,因此它現在將呈現正確的輸出,例如at night英語的at night 。使用formatDate()DatePipebB格式程式碼的應用程式將受到此變更的影響。
  • 對於路由器,CanLoad保護器現在可以傳回 Urltree# 。返回UrltreeCanLoad防護Urltree#取消目前導覽並重定向。這與CanActivate守衛可用的當前行為匹配,該行為也已添加。這不會影響預載。 CanLoad保護程式會阻止任何預先載入; 任何帶有 CanLoad防護的路由都不會預先載入,並且防護也不會作為預先載入的一部分執行。
  • 微語法表達式的ExpressionBinding與ParsedProperty的ExpressionBinding中正確值範圍的傳播,這又會將範圍傳播到模板AST(VE和Ivy)。該建議也適用於編譯器。
  • 在核心的修復中,會將邏輯加入未修飾的類別遷移中,以修飾使用Angular功能的未修飾類別的衍生類別。
  • 在重大變更中,Urlmatcher的類型將反映出它始終可以傳回null。
  • 對於服務人員,已修復了一種情況,即當任務長期運行或逾時時,服務人員可能永遠不會註冊。
  • 已經進行了許多錯誤修復,包括編譯器避免了有Kong數組中未定義的表達式,以及內核避免了導入不存在的符號時的遷移錯誤 。在Terser內聯bug的核心中也有解決方法。另一個錯誤修復程序正確地標識了受TestBed中的替代影響的模組 。
  • Angular NPM不再包含某些jsdoc註解來支援Closure Compiler的進階最佳化。這是一個重大變化。軟體包中對Closure Compiler的支援已經試驗並中斷了一段時間。使用Closure Compiler的任何人最好直接使用從原始碼建立的Angular軟體包,而不是使用NPM上發布的版本。作為臨時的解決方法,使用者可以考慮將其目前的建置管道與Closure標誌--compilation_level=SIMPLE 。此標誌將確保建置管道產生可建置的,可運行的工件,但由於禁用了高級最佳化而增加了有效負載大小。

翻譯自: https://www.infoworld.com/article/3537449/whats-new-in-angular-10.html

#

以上是淺談Angular10中的新功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除