前端網頁程式開發框架Angular最新釋出9.0,這個版本全面更新了開發框架、Angular Material以及CLI,Angular 9最大的亮點便是開始預設使用Ivy編譯器和Runtime,並且改進測試元件的方法。官方表示,這個版本是過去三年來,最大的一次更新。

Angular開發團隊發展已久的Ivy編譯器,在Angular 8.0發布時成為正式版本,在Angular 9變成了預設選項。Angular開發者使用TypeScript以及HTML來編寫元件,但這些HTML最終都不會在用戶的瀏覽器中執行,Angular的編譯器會將這些HTML轉換成JavaScript,當這些元件需要出現在頁面上時,由JavaScript創建適當的DOM。

而Ivy是開發團隊全新開發的編譯器,使用漸增編譯技術,能提升建置的速度,且能縮小捆綁包的大小,也讓開發者可以更快進行測試,除錯也更容易。開發團隊提到,開發Ivy編譯器的目的,是要精簡不透過樹搖處理的Angular部分,並使每個Angular元件產生更少的程式碼,經過這些改進,小型與大型應用程式,都能最大程度地縮減容量。

而那些沒有使用太多Angular功能的小型應用程式,則可以使用樹搖功能,獲得更大的助益。而中等大小的應用程式,因為原本從樹搖功能就獲益較少,但是又因為沒有使用足夠多的元件,因此難以真正因為Ivy編譯器縮減太多應用程式的容量。

官方也改進了Ivy的TestBed提升其效能,過去TestBed會在每次測試執行時,無論元件是否有被修改,都會重新編譯所有元件,而現在除非開發者手動覆蓋某個元件,否則TestBed不會在測試的時候重新編譯元件,因此能夠避免絕大多數測試時的編譯工作,使得框架核心測試速度加快40%,用戶的應用程式測試速度應該也會加速40%到50%。

由於Ivy的新架構,編譯器速度獲得大幅的提升,官方以應用程式的TypeScript編譯成本來衡量編譯器效能,Ivy編譯官方自家的文件應用程式angular.io,效率提升將近40%。而這代表AOT建置將能夠更快,開發人員現在可以在開發模式建置使用AOT,增加開發效率。

Angular 9也加入了YouTube和Google地圖新元件,開發者現在可以在應用程式中內嵌渲染YouTube播放器,而新的Google地圖元件,則讓開發者可以像是使用其他Angular元件一樣,簡單地渲染Google地圖,顯示標記並且與其互動,開發者不需要學習使用Google地圖API的方法。

Angular在2019年JavaScript 2019大調查的表現並不好,調查顯示其發展進入停滯狀態,從2016年來,雖然使用人數持續成長,但是負評也越來越多,在去年使用人數停止成長,而負評聲量卻沒有因此減少,趨勢預測Angular在2020年將會開始衰退,而是否能利用這次大改版力挽狂瀾,還值得觀察下去。


Advertisement

更多 iThome相關內容