Angular

Angular (通常是指 "Angular 2+" 或 "Angular v2 及更高版本")[4][5] 是一个基于 TypeScript开源 Web 应用框架Google 的 Angular 团队以及社区共同领导。Angular 是由 AngularJS 的同一个开发团队完全重写的。

Angular
開發者Google
初始版本2.0 / 2016年9月14日2016-09-14[1]
穩定版本
8.2.13
(2019年10月30日2019-10-30[2]
預覽版本
9.0.0-next.15
(2019年10月30日2019-10-30[3]
源代码库Angular 仓库
编程语言TypeScript
系統平台Web 平台
类型 Web 应用框架
许可协议MIT License
网站angular.io

Angular 和 AngularJS 之间的区别

Angular 应用的架构。其主要的构造块是模块、组件、模板、元数据、数据绑定、指令、服务和依赖注入。

在设计上,Angular 是 AngularJS 的完全重写。

  • Angular 没有“作用域”或控制器的概念,其架构中的主要角色是一些层次化的组件。[6]
  • Angular 具有不同的表达式语法,主要是用 "[ ]" 来表示属性绑定,以及用 "( )" 来表示事件绑定[7]
  • 模块化 – 许多核心功能都已模块化
  • 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及更高版本。[8]

版本 2

在2014年10月22~23日的 ng-Europe 会议上发布了Angular 2.0。[9][10] 2.0 版的重大变化在开发人员之间引起了很大争议。[11] 2015年4月30日,Angular 开发组宣布 Angular 2 从 Alpha 推进到 Developer Preview。[12] Angular 2 于2015年12月推进至 Beta 版,[13] 并于 2016年5月发布了首个 rc 版本。[14] 其最终版本于2016年9月14日发布。

版本 4

2016年12月13日发布了 Angular 4,它跳过了版本号 3,以免由于路由模块的版本的未和其它模块对齐而造成混淆(路由模块在之前已经作为 v3.3.0 发布了)。[15] 其最终版本于2017年3月23日发布。[16] Angular 4 向后兼容 Angular2。[17]

Angular 4.3 版是次要版本,这意味着它没有破坏性变更,是 4.xx 的直接替代品。

版本 4.3 中的特性

  • 引入了 HttpClient,这是一个更小、更易于使用且功能更强大的库,可用于发起 HTTP 请求。
  • 一些新的路由器生命周期事件,用于追踪守卫和解析过程。生命周期事件(比如 NavigationStart)集合中加入了四个新事件:GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd
  • 有条件的禁用动画。

版本 5

Angular 5 于2017年11月1日发布。[18] Angular 5 的主要改进包括对渐进式 Web 应用的支持、一个构建优化器,以及一些与 Material Design 相关的改进。[19]

版本 6

Angular 6 于2018年5月4日发布[20]。这是一个主版本,其改进重点不在于底层框架,而在于工具链,其目的是让工具链能在将来与 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) 的依赖库更新。[21]

版本 8

Angular 8 于2019年5月28日发布。特性包括:为所有应用代码进行差异化加载、针对惰性加载路由的动态导入、Web workers、支持 TypeScript 3.4,并且把 Angular Ivy 作为可选的预览特性。Angular Ivy 的可选预览特性包括:[22]

  • 生成的代码在运行时更易于阅读和调试
  • 更快的重新构建
  • 改进了有效载荷的大小
  • 改进了模板类型检查
  • 向后兼容

未来的版本

最值得期待的特性之一是 Ivy [22],它是一个向后兼容的、基于增量式 DOM 架构的全新渲染引擎。Ivy 从设计之初就考虑到了摇树优化,这意味着应用的发布包中只会包含那些在应用中真正用到的 Angular 部件。

可以预期,每一个版本都会向后兼容前一个版本。Google 承诺每年会进行两次升级。

支持政策与时间表

所有主版本都提供了 18 个月的支持。其中包括 6 个月的活跃支持,在此期间会定期发布更新和补丁。然后是12个月的长期支持(LTS),在此期间只会发布关键修复程序和安全补丁。[23]

支持的 Angular 版本
版本 状态 发布 活跃期结束 LTS 期结束
^8.0.0 活跃 2019-05-28 2019-11-28 2020-11-28
^7.0.0 LTS 2018-10-18 2019-04-18 2020-04-18
^6.0.0 LTS 2018-05-03 2018-11-03 2019-11-03

Angular Material

Angular Material 是一个 UI 组件库,它在 Angular 中实现了 Material Design[24][25][26][27]

另请参阅

参考资料

  1. . blogspot.com. September 14, 2016 [2017-03-18]. (原始内容存档于2017-03-12).
  2. . 31 December 2018 [2017-01-11]. (原始内容存档于2017-07-29) GitHub.
  3. . GitHub. [2019-10-19]. (原始内容存档于2019-07-02).
  4. . reddit. [2019-11-15]. (原始内容存档于2020-06-17).
  5. . 6 April 2018 [2019-11-15]. (原始内容存档于2019-04-13).
  6. . angular.io. [2019-11-15]. (原始内容存档于2020-04-30).
  7. . gorrion.io. September 19, 2017 [2018-01-28]. (原始内容存档于2020-03-05).
  8. . [2017-03-04]. (原始内容存档于2018-01-09).
  9. Coman Hamilton. . [2015-10-21]. (原始内容存档于2020-05-01).
  10. . [2019-11-15]. (原始内容存档于2018-04-30).
  11. Coman Hamilton. . [2015-10-21]. (原始内容存档于2020-04-24).
  12. @angularjs. (推文). 30 Apr 2015 [2015-10-21] Twitter.
  13. . angularjs.blogspot.it. [2016-07-13]. (原始内容存档于2015-12-18).
  14. . GitHub. [2016-05-04]. (原始内容存档于2020-05-22).
  15. . angularjs.blogspot.kr. [2016-12-14]. (原始内容存档于2017-10-16).
  16. . angularjs.blogspot.ca. [2017-03-23]. (原始内容存档于2018-01-08).
  17. . react-etc.net. [2016-12-14]. (原始内容存档于2019-12-12).
  18. Fluin, Stephen. . [2 November 2017]. (原始内容存档于2020-04-27).
  19. . [2019-11-15]. (原始内容存档于2018-06-12).
  20. . [4 May 2018]. (原始内容存档于2020-04-27).
  21. Fluin, Stephen. . Angular Blog. 2018-10-18 [2019-06-07]. (原始内容存档于2018-10-21).
  22. Fluin, Stephen. . Angular Blog. 2019-02-08 [2019-06-07]. (原始内容存档于2020-06-27).
  23. . angular.io. [2019-06-07]. (原始内容存档于2019-06-04).
  24. Noring, Christoffer; Deeleman, Pablo. . Packt Publishing Ltd. 2017-12-08: 315. ISBN 9781787125940 (英语).
  25. Hajian, Majid. . Apress. 2019-05-22: 30. ISBN 9781484244487 (英语).
  26. Kasagoni, Shravan Kumar. . Packt Publishing Ltd. 2017-05-29: 173. ISBN 9781785880032 (英语).
  27. Clow, Mark. . Apress. 2018-02-20: 245. ISBN 9781484232798 (英语).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.