Angular

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Angular
開發者Google
首次釋出2.0 / 2016年9月14日,​7年前​(2016-09-14[1]
目前版本
  • 17.3.5 (2024年4月17日;穩定版本)[2]
編輯維基數據連結
原始碼庫github.com/angular/angular
程式語言TypeScript
平台Web 平台
類型Web應用框架
特許條款MIT特許條款
網站angular.io

Angular (通常是指 "Angular 2+" 或 "Angular v2 及更高版本")[3][4] 是一個基於 TypeScript開源 Web 應用框架Google 的 Angular 團隊以及社區共同領導。Angular 是由 AngularJS 的同一個開發團隊完全重寫的。

Angular 和 AngularJS 之間的區別[編輯]

Angular 應用的架構。其主要的構造塊是模組、組件、模板、元數據、數據繫結、指令、服務和依賴注入。

在設計上,Angular 是 AngularJS 的完全重寫。

  • Angular 沒有「作用域」或控制器的概念,其架構中的主要角色是一些層次化的組件。[5]
  • Angular 具有不同的表達式語法,主要是用 "[ ]" 來表示屬性繫結,以及用 "( )" 來表示事件繫結[6]
  • 模組化 – 許多核心功能都已模組化
  • Angular 建議使用 Microsoft 的 TypeScript 語言,該語言引入了如下特性:
  • TypeScriptECMAScript 6 (ES6) 的超集,並且與 ECMAScript 5 (即 JavaScript) 向下相容
  • 動態載入
  • 非同步模板編譯
  • RxJS 提供了迭代式回呼。RxJS 在狀態可見性和除錯方面有局限,不過可以使用諸如 ngReact 或 ngrx 之類的響應式第三方庫來解決這些問題
  • 支援 Angular Universal,它可以在伺服器上執行 Angular 應用程式

歷史[編輯]

命名[編輯]

最初,團隊將這份 AngularJS 的重寫版本稱為 「Angular 2」,但這在開發人員之間引起了混亂。為了明確起見,該團隊宣佈應該為這兩個框架分別使用各自的術語,其中 「AngularJS」 專指 1.X 版本,而不帶 「JS」 的 「Angular」 則專指版本2及更高版本。[7]

版本 2[編輯]

在2014年10月22~23日的 ng-Europe 會議上釋出了Angular 2.0。[8][9] 2.0 版的重大變化在開發人員之間引起了很大爭議。[10] 2015年4月30日,Angular 開發組宣佈 Angular 2 從 Alpha 推進到 Developer Preview。[11] Angular 2 於2015年12月推進至 Beta 版,[12] 並於 2016年5月釋出了首個 rc 版本。[13] 其最終版本於2016年9月14日釋出。

版本 4[編輯]

2016年12月13日釋出了 Angular 4,它跳過了版本號 3,以免由於路由模組的版本的未和其它模組對齊而造成混淆(路由模組在之前已經作為 v3.3.0 釋出了)。[14] 其最終版本於2017年3月23日釋出。[15] Angular 4 向下相容 Angular2。[16]

Angular 4.3 版是次要版本,這意味着它沒有破壞性變更,是 4.xx 的直接替代品。

版本 4.3 中的特性

  • 引入了 HttpClient,這是一個更小、更易於使用且功能更強大的庫,可用於發起 HTTP 請求。
  • 一些新的路由器生命周期事件,用於追蹤守衛和解析過程。生命周期事件(比如 NavigationStart)集合中加入了四個新事件:GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd
  • 有條件的禁用動畫。

版本 5[編輯]

Angular 5 於2017年11月1日釋出。[17] Angular 5 的主要改進包括對漸進式 Web 應用的支援、一個構建最佳化器,以及一些與 Material Design 相關的改進。[18]

版本 6[編輯]

Angular 6 於2018年5月4日釋出[19]。這是一個主版本,其改進重點不在於底層框架,而在於工具鏈,其目的是讓工具鏈能在將來與 Angular 一起快速發展,改進點主要包括:ng update、ng add、Angular Elements、Angular Material + CDK 組件庫、Angular Material 初學者組件、CLI 工作空間、庫支援、服務提供商的搖樹最佳化、動畫效能改進,以及 RxJS v6。

版本 7[編輯]

Angular 7 於2018年10月18日釋出。其升級主要集中在 Angular Material & CDK、虛擬捲動、選擇框在無障礙方面的改進、支援對符合 Web 標準的自訂元素進行內容投影,以及對 Typescript 3.1、RxJS 6.3、Node 10 (仍然支援 Node 8) 的依賴庫更新。[20]

版本 8[編輯]

Angular 8 於2019年5月28日釋出。特性包括:為所有應用代碼進行差異化載入、針對惰性載入路由的動態匯入、Web workers、支援 TypeScript 3.4,並且把 Angular Ivy 作為可選的預覽特性。Angular Ivy 的可選預覽特性包括:[21]

  • 生成的代碼在執行時更易於閱讀和除錯
  • 更快的重新構建
  • 改進了有效載荷的大小
  • 改進了模板型別檢查
  • 向下相容

未來的版本[編輯]

最值得期待的特性之一是 Ivy [21],它是一個向下相容的、基於增量式 DOM 架構的全新彩現引擎。Ivy 從設計之初就考慮到了搖樹最佳化,這意味着應用的釋出包中只會包含那些在應用中真正用到的 Angular 部件。

可以預期,每一個版本都會向下相容前一個版本。Google 承諾每年會進行兩次升級。

支援政策與時間表[編輯]

所有主版本都提供了 18 個月的支援。其中包括 6 個月的活躍支援,在此期間會定期釋出更新和修補程式。然後是12個月的長期支援(LTS),在此期間只會釋出關鍵修復程式和安全修補程式。[22]

程式庫[編輯]

Angular Material[編輯]

Angular Material 是一個 UI 組件庫,它在 Angular 中實現了 Material Design[23][24][25][26]

另請參閱[編輯]

參考資料[編輯]

  1. ^ Angular, version 2: proprioception-reinforcement. blogspot.com. September 14, 2016 [2017-03-18]. (原始內容存檔於2017-03-12). 
  2. ^ Release 17.3.5. 2024年4月17日 [2024年4月19日]. 
  3. ^ r/Angular2. reddit. [2019-11-15]. (原始內容存檔於2020-06-17). 
  4. ^ AngularJS 与 Angular 2+: 一份详细的比较. 6 April 2018 [2019-11-15]. (原始內容存檔於2019-04-13). 
  5. ^ Angular 文档. angular.io. [2019-11-15]. (原始內容存檔於2020-04-30). 
  6. ^ AngularJS 和 Angular 之间有什么区别?. gorrion.io. September 19, 2017 [2018-01-28]. (原始內容存檔於2020-03-05). 
  7. ^ Angular: Branding Guidelines for AngularJS. [2017-03-04]. (原始內容存檔於2018-01-09). 
  8. ^ Coman Hamilton. A sneak peek at the radically new Angular 2.0. [2015-10-21]. (原始內容存檔於2020-05-01). 
  9. ^ Ng-Europe schedule. [2019-11-15]. (原始內容存檔於2018-04-30). 
  10. ^ Coman Hamilton. Angular 2.0 announcement backfires. [2015-10-21]. (原始內容存檔於2020-04-24). 
  11. ^ @angularjs. Angular 2 moves from Alpha to Developer Preview! Dev guide and API docs now available at ... angular.io/docs/js/latest (推文). 30 Apr 2015 [2015-10-21] –透過Twitter. 
  12. ^ Angular: Angular 2 Beta. angularjs.blogspot.it. [2016-07-13]. (原始內容存檔於2015-12-18). 
  13. ^ angular/angular. GitHub. [2016-05-04]. (原始內容存檔於2020-05-22). 
  14. ^ Ok... let me explain: it's going to be Angular 4.0. angularjs.blogspot.kr. [2016-12-14]. (原始內容存檔於2017-10-16). 
  15. ^ Angular 4.0.0 Now Available. angularjs.blogspot.ca. [2017-03-23]. (原始內容存檔於2018-01-08). 
  16. ^ Angular 4 coming in 2017, to be backwards compatible with Angular 2. react-etc.net. [2016-12-14]. (原始內容存檔於2019-12-12). 
  17. ^ Fluin, Stephen. Version 5.0.0 of Angular Now Available. [2 November 2017]. (原始內容存檔於2020-04-27). 
  18. ^ Angular 5 JavaScript framework delayed. [2019-11-15]. (原始內容存檔於2018-06-12). 
  19. ^ Version 6.0.0 of Angular Now Available. [4 May 2018]. (原始內容存檔於2020-04-27). 
  20. ^ Fluin, Stephen. Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more. Angular Blog. 2018-10-18 [2019-06-07]. (原始內容存檔於2018-10-21). 
  21. ^ 21.0 21.1 Fluin, Stephen. A plan for version 8.0 and Ivy. Angular Blog. 2019-02-08 [2019-06-07]. (原始內容存檔於2020-06-27). 
  22. ^ Angular. angular.io. [2019-06-07]. (原始內容存檔於2019-06-04). 
  23. ^ Noring, Christoffer; Deeleman, Pablo. Learning Angular: A no-nonsense guide to building real-world apps with Angular 5. Packt Publishing Ltd. 2017-12-08: 315. ISBN 9781787125940 (英語). 
  24. ^ Hajian, Majid. Progressive Web Apps with Angular: Create Responsive, Fast and Reliable PWAs Using Angular. Apress. 2019-05-22: 30. ISBN 9781484244487 (英語). 
  25. ^ Kasagoni, Shravan Kumar. Building Modern Web Applications Using Angular. Packt Publishing Ltd. 2017-05-29: 173. ISBN 9781785880032 (英語). 
  26. ^ Clow, Mark. Angular 5 Projects: Learn to Build Single Page Web Applications Using 70+ Projects. Apress. 2018-02-20: 245. ISBN 9781484232798 (英語). 

外部連結[編輯]