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

葡萄城控制元件發表於2019-04-15

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

本文由葡萄城翻譯併發布

---

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


相關文章