您好,登錄后才能下訂單哦!
小編給大家分享一下Angular10中的新功能有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Angular 10是對流行的Web開發框架的主要升級,通常會在6月24日作為正式版本提供。正式版升級是基于Google開發的基于TypeScript的框架,與新版本相比,它更加注重質量,工具和生態系統的改進特征。
Angular 10小于以前的Angular版本。 新功能包括Angular Material UI組件庫中的新日期范圍選擇器和CommonJS導入警告。 當與CommonJS打包的依賴項可能導致更大,更慢的應用程序一起使用時,CommonJS導入警告會警告開發人員,從而允許開發人員替換ECMAScript模塊包。
此外,可選的嚴格設置,創建一個新的工作區時提供了一個更嚴格的項目設置ng new
,通過ng new -- strict
。 啟用此標志將使用新設置初始化新項目,以提高可維護性,幫助捕獲錯誤并允許CLI在應用程序上進行高級優化。
您可以在GitHub上找到Angular 10的一般版本 。 要更新當前的Angular安裝,可以運行以下命令:
ng update @angular/cli @angular/core
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軟件包和庫運行yarn
或npm install
時,節省了下載和安裝時間。
對于編譯器,已為屬性讀取和方法調用添加了名稱范圍。
EntryPointFinder
,這是一個基于程序的入口點查找器,可以從tsjconfig.json文件指定的程序中的導入中獲得種子。 當活動程序僅導入一小部分已安裝的入口點時,這預計會比DirectoryWalkerEntryPointFinder
更快。
由于具有可疑的價值和性能問題,自動完成功能已從HTML實體(如&
)中刪除。
顯式映射從閉包公開到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文件的支持,用于設置retryAttempts
和retryDelay
選項。 集成測試添加了新的超時檢查,并使用ngcc.config.js減少了超時時間,以防止測試花費太長時間。
在一項重大更改中,有關未知元素的警告現在記錄為錯誤。 雖然這不會破壞應用程序,但它可能會觸發一些期望通過console.error不記錄任何內容的工具。
在另一個重大更改中,任何返回EMPTY
解析器都將取消導航。 為了使導航繼續進行,開發人員必須更新解析器以更新某些值,例如default!Empty
。
在元數據中添加了依賴項信息和ng-content選擇器。 提議的編譯器功能將提供對諸如Angular Language Service之類的工具有用的附加元數據,并具有為庫中定義的指令/組件提供建議的能力。
通過減小入口點清單的大小和清單中的緩存技術來實現性能改進。 另外,依賴項的緩存是在入口點清單中完成的,并從那里讀取,而不是每次都進行計算。 以前,即使不需要處理入口點,ngcc(Angular Ivy兼容性編譯器)也將解析入口點的文件以計算依賴關系,這對于large_node模塊將花費大量時間。
為了提高ngcc性能,現在允許立即報告陳舊的鎖定文件。 此外,還將存儲已解析的tsconfig文件的緩存副本,如果tsconfig路徑相同,則可以重復使用該副本。
在一項重大更改中,邏輯已更新,涉及格式化午夜的白天。 當使用b
或B
格式代碼格式化時間時,呈現的字符串不能正確處理跨越幾天的白天。 相反,邏輯回落到AM
的默認情況。 此邏輯已更新,因此它可以匹配在午夜之后的一天中的時間,因此它現在將呈現正確的輸出,例如at night
英語的at night
。 使用formatDate()
或DatePipe
或b
和B
格式代碼的應用程序將受到此更改的影響。
對于路由器, CanLoad
保護器現在可以返回Urltree
。 返回Urltree
的CanLoad
防護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
。 該標志將確保構建管道生成可構建的,可運行的工件,但由于禁用了高級優化而增加了有效負載大小。
以上是“Angular10中的新功能有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。