淺談Angular10中的新功能

2021-04-06 13:00:43
本篇文章帶大家瞭解一下10中的新功能。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

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

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

相關教學推薦:《》

此外,可選的嚴格設定,建立一個新的工作區時提供了一個更嚴格的專案設定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中的新功能的詳細內容,更多請關注TW511.COM其它相關文章!