在 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)

相關文章
相關標籤/搜索