在 Angular 8 中,我們可以期待些什么


轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。

本文由葡萄城翻譯並發布

---

 

Angular 作為一款優秀的前端框架,自誕生之日起,就致力於面向前端開發者提供一整套全功能解決方案。與其他流行框架所追求的理念不同,Angular並非作為一款可以並入 Web 應用程序的輕量級框架而生,而是設計為:包含了一個完整的工作流,用於從項目創建開始,持續地維護並更新你的應用程序

2019對於 Angular來說意義非凡,因為其包含了Ivy 等功能的全新版Angular 8 將於本年內正式發布。盡管 Angular 技術團隊仍沒有對外公布 Angular 8 正式版發布日期,但其beta版在本月上線已幾乎沒有懸念。Angular 8的發布近在咫尺!

那么,在 Angular 8 中,我們可以期待些什么?

Angular 8 中有什么新功能

盡管大多數開發者都在關注Ivy,但其實 Angular 8 中還是有很多值得稱道的亮點:

l  JavaScript中的差異化加載

作為構建過程的一部分,Angular CLI生成的新應用程序現在將包含用於舊版JavaScript(ES5)和現代JavaScript(ES2015 +)的單獨軟件包。該包在客戶端中實現差異化加載,以提高瀏覽器的加載速度和傳輸間隔時間(TTI)。這是一個好消息,意味着支持ES2015的瀏覽器將能夠下載更小、更高效的應用程序包,而這些應用程序包的加載速度和渲染速度都比以往更快。

l  Ivy (預覽版)視圖引擎搶先試用

您可在應用程序中開始使用Ivy渲染器,並向Angular團隊提供使用反饋,以便其及時做出優化和修復。

l  Angular Router的向后兼容模式

Angular 添加了向后兼容模式,以降低大型項目的升級成本。Angular Router將可以使用 $ route APIs 在現有的Angular應用程序中,選擇延遲加載部分 Angular 1.x應用程序。在理想的情況下,我們甚至可以立即將Angular 1.x應用程序升級到Angular 2+。

然而,現實並非如此。直到今天,還有大量傳統的Angular應用程序仍在為企業提供服務。而這些企業沒有選擇升級的原因很簡單:它們運行良好,並且在完成重寫時無需太多投入。

然而,Angular 1.x的時代已經結束,之后不會有任何新的更新,直到2021年6月30日。因此,對於從事大型Angular 1.x應用程序開發的團隊,現在正是選擇升級的最佳時間

l  改良的Web Worker綁定方式

Web Worker是編寫主線程運行代碼的好方法,可用於提高應用程序的速度和並發性。為了達到這一目標,Angular團隊在 CLI 中添加了改良的 Web Worker綁定支持。

l  可選的信息共享機制

為了有效收集您的反饋,更好地建設 Angular社區,Angular團隊在CLI中添加了可選的信息共享機制。在您同意的情況下,將開始收集您的命令行和構建速度等匿名信息。

l  依賴關系更新

與往常一樣,Angular團隊正在更新對TypeScript、RxJS和Node等工具的依賴關系,以便與 Angular 生態系統的其余部分保持同步。

Angular Ivy 是什么?

 

 

作為下一代 Angular 的視圖引擎,Ivy的出現旨在徹底縮減代碼尺寸並增強系統靈活性。與目前的Angular View Engine相比,Ivy具有以下優勢:

  • 通過 Angular 編譯器生成的代碼現在將更容易讓開發者閱讀和理解
  • 項目重建時間將明顯加快
  • 有效減少了負載大小,瀏覽器用於下載和解析應用程序的時間將更短
  • 更好的模板類型檢查,以便您在項目構建初期,就可捕獲更多BUG,以防止用戶在運行時遇到它們

除此之外,Angular Ivy與現有的Angular應用程序廣泛兼容。因此,在理想的情況下,您將無需更改應用程序即可獲得Ivy的全部支持。這也是為什么使用Angular 8和Ivy構建當前的Angular應用程序會更加便利。

Ivy(預覽版)可能存在的問題

目前已知的是,Ivy 的國際版和Angular Universal版尚未完全兼容。當然,如果您在開發過程中遇到任何使用BUG,請立即向Angular技術團隊反饋,以便他們能夠及時解決問題並將您的建議作為 Ivy 正式版的一部分。

如果您的Angular應用程序支持多語言或使用服務器端呈現數據,請不要指望它能與Ivy完美結合。除此之外,用戶可能遇到的另一個問題就是Angular Material,目前來看,使用Angular Material的應用似乎與即將發布的Angular 8預覽版Ivy不太匹配。

Angular 8 對 Web Worker 的支持

對於那些對Web Worker 還不熟悉的開發者來說,Web Worker標志着前端開發中的一項重要創新,在此之前,所有 Web 應用程序僅限於使用單線程。而隨着 Web Worker 的出現,可以將CPU分配到單獨的硬件線程中,使瀏覽器環境擁有多線程,從而提升項目開發效率。

在Angular 8更新之前,使用 Web Worker需要注意的問題是:在worker中運行的代碼不能與應用程序的其余部分位於同一JavaScript腳本文件中。它必須是分開的。因此,對於曾經希望借助Angular CLI等工具,自動將JavaScript文件拆分、綁定到更少文件夾下的效果往往不佳。而Angular 8的新特性之一便是改進了使用Angular CLI捆綁WebWorker的支持,這項改進意味着您將走向多並發、自動化的Web Worker之路。

Angular 8 對 TypeScript 的支持

關於 Angular 8 中的依賴更新,包括了對Angular依賴項和最新版本的更新,如RxJS和TypeScript等框架。這看起來似乎是一個微小的改進,但卻同樣受歡迎,特別是TypeScript部分。

Angular 8 的性能提升

雖然 Angular 8 帶來了很多令人稱贊的功能,但是真正促使我們升級的很大一部分原因取決於其性能的提升!為證實這一點,我們將對 Angular 7.2 和Angular 8.0.0-beta.7 進行全面對比。

該性能測試是基於ng new創建的新應用程序運行,並使用ng build --prod構建的。測試本身使用了Chrome的審核標簽完成,通過 “Applied Fast 3G,4X CPU Slowdown” 的設置來模擬在移動設備上運行。

Angular 7.2

使用Angular 7.2的正式版本生成main.js的大小為240KB。具體數據如下圖:

 

 

Angular 8.0.0-beta.7

Angular 8 beta版本的main.js文件大小與Angular 7.2相同:240KB。由此可見,文件大小沒有任何改變,但讓我們對比一下性能數據:

 

 Angular 8 看起來更棒!相對於Angular 7.2,獲得了相當不錯的性能提升。

於是,在 Angular 8 中,我們可以得到些什么

正如我們所看到的,Angular 8的新增特性除 Ivy 之外並不是很亮眼,盡管這些特性非常好用,但對於大多數應用程序來說並不重要。

 

基於這一點,您應該將應用程序升級到Angular 8,還是堅持使用Angular 7?毫無疑問,你應該升級它們。即便功能上沒有任何大的重大更新,但通過 Angular 8 新增的差異化加載,您將獲得顯著的性能提升。

 

更重要的是,升級到Angular 8將確保您的應用程序為Ivy做好准備,即便目前 Ivy只是Angular 8提供的一個可選預覽。如果您的應用程序需要兼容 Ivy,那么最好從現在開始嘗試。

 

或者,您也可以選擇一條更加快捷且簡便的方式,比如使用一款相當成熟的商業化開發工具——WijmoJS。這樣,您就不必考慮項目中前端框架的兼容性和版本更新問題,因為它不但同時兼容了Angular、React、Vue、TypeScript和Ionic 等框架,還時刻緊隨技術潮流,第一時間保持對框架最新版本的全面支持。

 

---

本文是由葡萄城技術開發團隊發布,轉載請注明出處:葡萄城官網

了解可嵌入您系統的在線 Excel,請前往SpreadJS純前端表格控件

與開發人員分享前端技術趨勢、交流心得技巧,請加入葡萄城“前端技術交流群”(QQ群:720389894)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM