Angular 18 簡介

Steven Yeh(葉俊宏)
SYSTEX
Published in
5 min readMay 27, 2024

--

去年 11 月才發布 Angular 17,僅相隔 6 個月的時間, Angular 18 就迅速登場。似乎象徵了近期各大前端框架正在進入快速迭代的時期。在此我們簡單的了解一下 Angular 18 有哪些主要的改變。

移除 zone.js

zone.js 原為 Angular 框架底層的偵測機制。刪除 ZoneJS 有了以下優點:

  • 改進效能:ZoneJS 帶來了相當大的開銷,無論是在有效負載大小還是在啟動時間成本上。
  • 改進的調試體驗:ZoneJS 讓調試程式碼變得更加困難。 ZoneJS 的堆疊追蹤更難理解。當程式碼因處於角度區域之外而導致程式碼中斷時,也很難理解。
  • 更好的生態系統相容性:ZoneJS 透過修補瀏覽器 API 來運作,但不會自動為每個新瀏覽器 API 提供修補程式。有些 API 根本無法有效修補。

取而代之的,是 Zoneless 的登場,其為開發人員打開了許多大門:

  • 提高微前端的可組合性以及與其他框架的互通性
  • 更快的初始渲染和運行時間
  • 更小的包大小和更快的頁面加載
  • 更易讀的堆疊跟踪
  • 調試更簡單

用於啟用 Zoneless 的 API 目前處於實驗階段。形狀和底層行為都不穩定,並且不會在補充版本中發生變化。存在已知的功能差距,包括缺乏符合人體工學的 API,這會阻止應用程式過早使用伺服器端渲染進行序列化。

Angular.dev 現在是 Angular 開發人員的新家

Angular 在 angular.dev上有一個全新的文檔,與其更新的品牌一致。改版後的網站擁有用戶友好的結構、指南的許多改進以及豐富的內容。值得注意的是,它引入了實現的互動式學習之旅。此功能使用戶能夠按照自己的節奏探索和學習 Angular 和 Angular CLI,所有這一切都可以在現代 Web 瀏覽器的便利下完成。這是一種更簡單、更容易掌握 Angular 複雜性的方法。

Angular Material 3

在幾個月前,Angular 引入了對 Material 3 的實驗性支援。

同時,Angular 18 也使用新的 Material 3 主題和文件更新了 material.angular.io 。現在開始,就可以在 Angular 的指南中找到如何在應用程式中使用 Angular Material 3 !

Angular DevTools

透過此工具,開發者可以更快速地進行前端畫面與程式碼架構的即時對應,幫助開發者快速進行修正。

統一控制狀態變更事件

FormControlFormGroupFormArrayAngular 表單中的類別現在公開一個名為的屬性events,它允許開發者訂閱此表單控制項的事件流。使用後開發者可以追蹤值、觸控狀態、原始狀態和控制狀態的變化。

ng-content 指定預設內容

許多 Angualr 開發者提出最多的問題之一,是為 ng-content 指定預設內容。 v18 現已可用!這是一個簡單的例子:

用法:

顯示:

路由重定向作為函數

為了在處理重定向時實現更高的靈活性,在 Angular v18 中,redirectTo 現在接受一個返回字串的函數。例如,如果開發者想要重定向到依賴某些運行時狀態的路由,可以在函數中實作更複雜的邏輯:

TypeScript 5.4

TypeScript,是一種建立在 JavaScript 之上的語言,可以聲明和描述類型。在程式碼中編寫類型使我們能夠解釋意圖,並讓其他工具檢查我們的程式碼以發現拼字錯誤和問題。

Angular 18 更新了對 TypeScript 的依賴關係,讓開發者可以利用所有最新的TypeScript 5.4 功能

心得總結

更新、更快、更厲害

相關連結

註:本文為 Louis Ho 撰寫,Steven Yeh 編輯,並使用 AI 工具進行部分內容翻譯與彙整。

--

--

Steven Yeh(葉俊宏)
SYSTEX
Editor for

喜歡寫程式但唸了化工,去食品公司卻做電子書,進餐飲業卻搞數位整合。創業六年後終究回到打工仔行列。現在發覺當個 UIUX 控的果粉是我最想做的事情。