Angular:修订间差异
小 Remove dead link |
消歧义:为 Angular 2+ 版本单独创建词条 标签:加入不存在模板 移除或更換文件 加入博客链接 |
||
第1行: | 第1行: | ||
{{NoteTA|G1=IT|G2=FL}} |
{{NoteTA|G1=IT|G2=FL}} |
||
{{short description|Web 应用框架}} |
|||
{{About|Angular|AngularJS 1.x|AngularJS}} |
|||
{{Infobox software |
{{Infobox software |
||
| name |
| name = Angular |
||
| logo |
| logo = Angular full color logo.svg |
||
| logo_size = 250px |
|||
| developer = [[Google Inc.]]和社区。 |
|||
| developer = [[Google]] |
|||
| released = {{Start date and age|2010|10|20}}<ref>[https://github.com/angular/angular.js/releases?after=v0.9.4 Earliest known releases]</ref> |
|||
| released = 2.0 / {{Start date and age|2016|09|14|df=yes}}<ref>{{cite web |url= http://angularjs.blogspot.com/2016/09/angular2-final.html |title= Angular, version 2: proprioception-reinforcement |date=September 14, 2016 |website= blogspot.com |access-date=2017-03-18}}</ref> |
|||
| status = 活跃 |
|||
| latest release version = |
| latest release version = 8.2.13 |
||
| latest release date |
| latest release date = {{Start date and age|2019|10|30|df=yes}}<ref>{{cite web|url=https://github.com/angular/angular/releases|title=GitHub - angular/angular: One framework. Mobile & desktop.|date=31 December 2018|publisher=|via=GitHub}}</ref> |
||
| latest preview version = 9.0.0-next.15 |
|||
| operating system = [[跨平台]],參見[[#舊版瀏覽器支援|舊版瀏覽器支援]] |
|||
| latest preview date = {{Start date and age|2019|10|30|df=yes}}<ref>{{cite web|url=https://github.com/angular/angular/releases|website=GitHub|accessdate=2019-10-19|title=angular/CHANGELOG.md at master · angular/angular}}</ref> |
|||
| programming language = [[JavaScript]] |
|||
| repo = {{URL|https://github.com/angular/angular|Angular 仓库}} |
|||
| genre = [[JavaScript函式庫]] |
|||
| programming language = [[TypeScript]] |
|||
| license = [[MIT许可证]] |
|||
| platform = [[Web platform|Web 平台]] |
|||
| size = 167 KB 生产环境版本<br />1.2 MB 開發环境版本 |
|||
| genre = [[Web framework| Web 框架]] |
|||
| website = {{URL|https://angularjs.org/}} |
|||
| license = [[MIT License]] |
|||
| website = {{url|https://angular.io/}} |
|||
| Tutorials = {{url|https://www.tutorialslogic.com/angular/}} |
|||
| status = Active |
|||
}} |
}} |
||
'''Angular''' (通常是指 "'''Angular 2+'''" 或 "'''Angular v2 及更高版本'''")<ref>{{cite web|url=https://www.reddit.com/r/Angular2/|title=r/Angular2|website=reddit}}</ref><ref>{{cite web|url=https://www.sitepoint.com/angularjs-vs-angular/|title=AngularJS 与 Angular 2+: 一份详细的比较|date=6 April 2018|publisher=}}</ref> 是一个基于 [[TypeScript]] 的 [[开源]] [[Web framework|Web 应用框架]] 由 [[Google]] 的 Angular 团队以及社区中的一些个人和公司共同领导。Angular 是由 [[AngularJS]] 的同一个开发团队完全重写的。 |
|||
==Angular 和 AngularJS 之间的区别== |
|||
'''AngularJS'''是一款由[[Google]]维护的[[开源软件|开源]][[JavaScript]]函式庫,用來協助[[单页应用|單一頁面應用程式]]運行。它的目标是透過[[MVC模式]](MVC)功能增强基于浏览器的应用,使开发和测试变得更加容易。在版本2大改(最突出的改变的全面使用'''[[TypeScript]]''')之后改名'''Angular''',第N版以Angular N的形式命名。 |
|||
[[File:Architecture of an Angular 2 application.png|thumb|right|upright=1.5|Angular 应用的架构。其主要的构造块是模块、组件、模板、元数据、数据绑定、指令、服务和依赖注入。]] |
|||
函式庫讀取包含附加自定義({{tsl|en|HTML_attribute|標籤屬性}})的[[HTML]],遵從這些自定義屬性中的指令,並將頁面中的輸入或輸出與由JavaScript變量表示的模型綁定起來。這些JavaScript變量的值可以手工設置,或者從靜態或動態[[JSON]]資源中獲取。 |
|||
在设计上,Angular 是 AngularJS 的完全重写。 |
|||
== Angular的哲學 == |
|||
* Angular 没有“作用域”或控制器的概念,其架构中的主要角色是一些层次化的组件。<ref>{{cite web|url=https://angular.io/guide/architecture|title=Angular 文档|website=angular.io}}</ref> |
|||
[[File:Architecture of an Angular 2 application.png|thumb|right|Angular 2应用程序的体系结构。 主要构建块是模块,组件,模板,元数据,数据绑定,指令,服务和依赖注入。]] |
|||
* Angular 具有不同的表达式语法,主要是用 <code>"[ ]"</code> 来表示[[Property_(programming)|属性]]绑定,以及用 <code>"( )"</code> 来表示[[Event_(computing)|事件]]绑定<ref>{{cite web |url=https://gorrion.io/blog/angularjs-vs-angular/ |title=AngularJS 和 Angular 之间有什么区别?|date=September 19, 2017 |website= gorrion.io |access-date=2018-01-28}}</ref> |
|||
Angular的理念是[[声明式编程]]應該用於構建用戶界面以及編寫軟件構建,而[[指令式編程]]非常適合來表示[[業務邏輯]]。<ref>{{cite web |url=http://docs.angularjs.org/guide/overview |title=What Is Angular? |deadurl=no |accessdate=12 February 2013}}</ref>框架採用並擴展了傳統HTML,通過雙向的數據綁定來適應動態內容,雙向的數據綁定允許模型和视图之間的自動同步。因此,Angular使得對DOM的操作不再重要並提升了可測試性。 |
|||
* 模块化 – 许多核心功能都已模块化 |
|||
* Angular 建议使用 Microsoft 的 [[TypeScript]] 语言,该语言引入了如下特性: |
|||
** [[Static typing|静态类型]],包括 [[Generic programming|泛型]] |
|||
** [[Decorator|装饰器]],语法上类似于[[Annotation|注解]] |
|||
* [[TypeScript]] 是 [[ECMAScript 6]] (ES6) 的超集,并且与 [[ECMAScript 5]] (即: JavaScript) [[Backward compatibility|向后兼容]]。 |
|||
* [[动态加载]] |
|||
* 异步模板编译 |
|||
* RxJS 提供了迭代式回调。RxJS 在状态可见性和调试方面有局限,不过可以使用诸如 ngReact 或 ngrx 之类的响应式第三方库来解决这些问题 |
|||
* 支持 Angular Universal,它可以在服务器上运行 Angular 应用程序 |
|||
==历史== |
|||
設計目標: |
|||
===命名=== |
|||
最初,团队将这份 AngularJS 的重写版本称为 “Angular 2”,但这在开发人员之间引起了混乱。为了明确起见,该团队宣布应该为这两个框架分别使用各自的术语,其中 “AngularJS” 专指 1.X 版本,而不带 “JS” 的 “Angular” 则专指版本2及更高版本。<ref>{{Cite web|url=http://angularjs.blogspot.com/2017/01/branding-guidelines-for-angular-and.html|title=Angular: Branding Guidelines for AngularJS|accessdate=2017-03-04}}</ref> |
|||
===版本 2=== |
|||
* 將應用邏輯與對[[文档对象模型|DOM]]的操作解耦。這會提高代碼的可測試性。 |
|||
在2014年10月22~23日的 ng-Europe 会议上发布了Angular 2.0。<ref>{{cite web |title= A sneak peek at the radically new Angular 2.0 |author= Coman Hamilton |url= https://jaxenter.com/angular-2-0-112094.html |accessdate= 2015-10-21 }}</ref><ref>{{cite web |title= Ng-Europe schedule |url= https://2015.ngeurope.org/#schedule}}</ref> 2.0 版的重大变化在开发人员之间引起了很大争议。<ref>{{cite web | title = Angular 2.0 announcement backfires | author = Coman Hamilton| url = https://jaxenter.com/angular-2-0-announcement-backfires-112127.html | accessdate= 2015-10-21 }}</ref> 2015年4月30日,Angular 开发组宣布 Angular 2 从 Alpha 推进到 Developer Preview。<ref>{{Cite tweet |title=Angular 2 moves from Alpha to Developer Preview! Dev guide and API docs now available at ... angular.io/docs/js/latest |user=angularjs |number=593797019258359809 |date=30 Apr 2015 |accessdate=2015-10-21}}</ref> Angular 2 于2015年12月推进至 Beta 版,<ref>{{Cite web|url=http://angularjs.blogspot.it/2015/12/angular-2-beta.html|title=Angular: Angular 2 Beta|website=angularjs.blogspot.it|access-date=2016-07-13}}</ref> 并于 2016年5月发布了首个 rc 版本。<ref>{{Cite web|url=https://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc0-2016-05-02|title=angular/angular|website=GitHub|access-date=2016-05-04}}</ref> 其最终版本于2016年9月14日发布。 |
|||
* 將應用程序的測試看的跟應用程序的編寫一樣重要。代碼的構成方式對測試的難度有巨大的影響。 |
|||
* 將應用程序的客戶端與伺服器端解耦。這允許客戶端和伺服器端的開發可以齊頭並進,並且讓雙方的復用成為可能。 |
|||
* 指導開發者完成構建應用程序的整個歷程:從用戶界面的設計,到編寫業務邏輯,再到測試。 |
|||
=== 版本 4 === |
|||
Angular遵循軟件工程的MVC模式,並鼓勵展現,數據,和邏輯組件之間的松耦合。通過[[依賴注入]](dependency injection),Angular為客戶端的Web應用帶來了傳統服務端的服務,例如獨立於视圖的控制。因此,後端減少了許多負擔,產生了更輕的Web應用。 |
|||
2016年12月13日发布了 Angular 4,它跳过了版本号 3,以免由于路由模块的版本的未和其它模块对齐而造成混淆(路由模块在之前已经作为 v3.3.0 发布了)。<ref>{{Cite web|url=http://angularjs.blogspot.kr/2016/12/ok-let-me-explain-its-going-to-be.html|title=Ok... let me explain: it's going to be Angular 4.0|website=angularjs.blogspot.kr|access-date=2016-12-14}}</ref> 其最终版本于2017年3月23日发布。<ref>{{Cite web|url=http://angularjs.blogspot.ca/2017/03/angular-400-now-available.html|title=Angular 4.0.0 Now Available|website=angularjs.blogspot.ca|access-date=2017-03-23}}</ref> Angular 4 向后兼容 Angular2。<ref>{{Cite web|url=https://react-etc.net/entry/angular-4-coming-in-2017-backwards-compatible-angular-2|title=Angular 4 coming in 2017, to be backwards compatible with Angular 2|website=react-etc.net|access-date=2016-12-14}}</ref> |
|||
Angular 4.3 版是次要版本,这意味着它没有破坏性变更,是 4.xx 的直接替代品。 |
|||
==Angular主要的指令(自定义标签)== |
|||
版本 4.3 中的特性 |
|||
== 雙向數據綁定 == |
|||
* 引入了 '''HttpClient''',这是一个更小、更易于使用且功能更强大的库,可用于发起 HTTP 请求。 |
|||
Angular在呈現和資料中間,可以簡單建立雙向的數據綁定。一旦建立雙向綁定,使用者輸入,會由Angular自動傳到一個變數中,再自動讀到所有綁到它的內容,更新它。效果上就是立即的資料同步。在程式碼中修改變數,也會直接反應到呈現的外觀上。不僅內容可以雙向綁定,其他諸如類別、寬度、高度等等,都可以和變數與使用者的輸入,綁定起來。 |
|||
* 一些新的'''路由器生命周期'''事件,用于追踪守卫和解析过程。生命周期事件(比如 NavigationStart)集合中加入了四个新事件:'''GuardsCheckStart''', '''GuardsCheckEnd''', '''ResolveStart''', '''ResolveEnd'''。 |
|||
* 有条件的'''禁用'''动画。 |
|||
== |
=== 版本 5 === |
||
Angular 5 于2017年11月1日发布。<ref>{{cite web|last1=Fluin|first1=Stephen|url=https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced|title=Version 5.0.0 of Angular Now Available|accessdate=2 November 2017}}</ref> Angular 5 的主要改进包括对[[Progressive web app|渐进式 Web 应用]]的支持、一个构建优化器,以及一些与 Material Design 相关的改进。<ref>{{cite web|url=https://www.infoworld.com/article/3225511/javascript/angular-5-javascript-framework-delayed.html|title=Angular 5 JavaScript framework delayed}}</ref> |
|||
AngularJS在2009年由Miško Hevery和Adam Abrons開發,作為線上[[JSON]]儲存服務的軟體,它是以兆位元來計價,便於成為企業的應用服務。當初以"GetAngular.com"註册網域,但由於只有少量的註册用户,在兩人決定放棄這個商業想法前,就把Angular開源了。 |
|||
=== 版本 6=== |
|||
Abrons後來離開了這個計劃,但在[[Google]]工作的Hevery和一些谷歌員工如Igor Minár和Vojta Jína等則繼續開發維護此函式庫。 |
|||
Angular 6 于2018年5月4日发布<ref>{{cite web|url=https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4|title=Version 6.0.0 of Angular Now Available|accessdate=4 May 2018}}</ref>。这是一个主版本,其改进重点不在于底层框架,而在于工具链,其目的是让工具链能在将来与 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) 的依赖库更新。<ref>{{Cite web|url=https://blog.angular.io/version-7-of-angular-cli-prompts-virtual-scroll-drag-and-drop-and-more-c594e22e7b8c|title=Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more|last=Fluin|first=Stephen|date=2018-10-18|website=Angular Blog|access-date=2019-06-07}}</ref> |
|||
目前有兩個正在維護的穩定版本:1.3.x和1.4.x,更新频率約为每周一次或每两周一次. <ref>{{Cite web|url = https://github.com/angular/angular.js/blob/master/CHANGELOG.md|title = angular.js CHANGELOG|accessdate = 2015-06-18|author = |date = |publisher = }}</ref> |
|||
=== |
===版本 8=== |
||
Angular 8 于2019年5月28日发布。特性包括:为所有应用代码进行差异化加载、针对惰性加载路由的动态导入、Web workers、支持 TypeScript 3.4,并且把 Angular Ivy 作为可选的预览特性。Angular Ivy 的可选预览特性包括:<ref name=":0">{{Cite web|url=https://blog.angular.io/a-plan-for-version-8-0-and-ivy-b3318dfc19f7|title=A plan for version 8.0 and Ivy|last=Fluin|first=Stephen|date=2019-02-08|website=Angular Blog|access-date=2019-06-07}}</ref> |
|||
Angular在1.2之後的版本不再支援[[Internet Explorer]] 6和7.<ref name=angularjs-ie-compat>{{cite web|title=AngularJS: Developer Guide: Internet Explorer Compatibility|url=https://docs.angularjs.org/guide/ie|publisher=Google|accessdate=2014-10-12}}</ref>在1.3之後的版本停止對Internet Explorer 8的支援.<ref name=angularjs-13>{{cite web|last1=Minar|first1=Igor|title=AngularJS 1.3: a new release approaches|url=http://angularjs.blogspot.com/2013/12/angularjs-13-new-release-approaches.html|website=AngularJS Blog|accessdate=2014-10-12}}</ref> |
|||
* 生成的代码在运行时更易于阅读和调试 |
|||
* 更快的重新构建 |
|||
* 改进了有效载荷的大小 |
|||
* 改进了模板类型检查 |
|||
* 向后兼容 |
|||
== |
=== 未来的版本 === |
||
最值得期待的特性之一是 Ivy <ref name=":0" />,它是一个向后兼容的、基于增量式 DOM 架构的全新渲染引擎。Ivy 从设计之初就考虑到了[[tree shaking|摇树优化]],这意味着应用的发布包中只会包含那些在应用中真正用到的 Angular 部件。 |
|||
;REST <ref>{{cite web|title=Javascript Frameworks And Data Binding|url=http://tunein.yap.tv/javascript/2012/06/11/javascript-frameworks-and-data-binding/|accessdate=13 February 2013|deadurl=yes|archiveurl=https://www.webcitation.org/6GkJ0sk4e?url=http://tunein.yap.tv/javascript/2012/06/11/javascript-frameworks-and-data-binding/|archivedate=2013年5月20日}}</ref> |
|||
可以预期,每一个版本都会向后兼容前一个版本。Google 承诺每年会进行两次升级。 |
|||
=== 支持政策与时间表 === |
|||
依赖注入 |
|||
所有主版本都提供了 18 个月的支持。其中包括 6 个月的活跃支持,在此期间会定期发布更新和补丁。然后是12个月的长期支持(LTS),在此期间只会发布关键修复程序和安全补丁。<ref>{{Cite web|url=https://angular.io/guide/releases#support-policy-and-schedule|title=Angular|website=angular.io|access-date=2019-06-07}}</ref> |
|||
{| class="wikitable" |
|||
== 参考文献 == |
|||
|+支持的 Angular 版本 |
|||
{{Reflist}} |
|||
!版本 |
|||
!状态 |
|||
!发布 |
|||
!活跃期结束 |
|||
!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 === |
|||
{{refbegin}} |
|||
{{redirect|Angular Material|该库有一个同名的 AngularJS 1.x 版本|AngularJS#Angular Material}} |
|||
* {{cite book |
|||
{{expand section|date=August 2019}} |
|||
| first1 = Brad |
|||
Angular Material 是一个 [[User interface|UI]] 组件库,它在 Angular 中实现了 [[Material Design]]。<ref>{{Cite book|url=https://books.google.co.uk/books?id=WMxPDwAAQBAJ|title=Learning Angular: A no-nonsense guide to building real-world apps with Angular 5|last=Noring|first=Christoffer|last2=Deeleman|first2=Pablo|date=2017-12-08|publisher=Packt Publishing Ltd|year=|isbn=9781787125940|location=|pages=315|language=en}}</ref><ref>{{Cite book|url=https://books.google.co.uk/books?id=xdyZDwAAQBAJ|title=Progressive Web Apps with Angular: Create Responsive, Fast and Reliable PWAs Using Angular|last=Hajian|first=Majid|date=2019-05-22|publisher=Apress|year=|isbn=9781484244487|location=|pages=30|language=en}}</ref><ref>{{Cite book|url=https://books.google.co.uk/books?id=qnc5DwAAQBAJ|title=Building Modern Web Applications Using Angular|last=Kasagoni|first=Shravan Kumar|date=2017-05-29|publisher=Packt Publishing Ltd|year=|isbn=9781785880032|location=|pages=173|language=en}}</ref><ref>{{Cite book|url=https://books.google.co.uk/books?id=IDtNDwAAQBAJ|title=Angular 5 Projects: Learn to Build Single Page Web Applications Using 70+ Projects|last=Clow|first=Mark|date=2018-02-20|publisher=Apress|year=|isbn=9781484232798|pages=245|language=en}}</ref> |
|||
| last1 = Green |
|||
| first2 = Shyam |
|||
==另请参阅== |
|||
| last2 = Seshadri |
|||
{{Portal|自由与开源软件}} |
|||
| date = March 22, 2013 |
|||
*[[AngularJS]] |
|||
*[[React.js|React (JavaScript 库)]] |
|||
| publisher = [[O'Reilly Media]] |
|||
*[[Vue.js]] |
|||
| edition = 1st |
|||
*[[Comparison of JavaScript frameworks|JavaScript 框架之间的比较]] |
|||
| page = 150 |
|||
| isbn = 978-1449344856 |
|||
==参考资料== |
|||
| url = http://shop.oreilly.com/product/0636920028055.do |
|||
{{Reflist}} |
|||
}} |
|||
{{refend}} |
|||
==外部链接== |
==外部链接== |
||
* |
* [https://angular.io 官网] |
||
* [https://v2.angular.io 已归档网站 (Angular 2)] |
|||
* [https://groups.google.com/forum/?fromgroups#!forum/angular 在Google Groups上的AngularJS] |
|||
* [https://web.archive.org/web/20130703211140/https://plus.google.com/+AngularJS/posts 在Google+上的AngularJS] |
|||
*[https://github.com/angular/angularjs-batarang Github上AngularJS Batarang Chrome plugin] |
|||
{{Rich Internet applications}} |
|||
{{Application frameworks}} |
{{Application frameworks}} |
||
{{ECMAScript}} |
{{ECMAScript}} |
||
{{NodeJs}} |
|||
[[Category: |
[[Category:Google软件]] |
||
[[Category: |
[[Category:富网络应用程序框架]] |
||
[[Category:使用MIT许可证的软件]] |
[[Category:使用MIT许可证的软件]] |
||
[[Category: |
[[Category:AJAX]] |
2019年11月15日 (五) 15:17的版本
開發者 | |
---|---|
首次发布 | 2.0 / 2016年9月14日[1] |
当前版本 |
|
源代码库 | Angular 仓库 |
编程语言 | TypeScript |
平台 | Web 平台 |
类型 | Web 框架 |
许可协议 | MIT License |
网站 | angular |
Angular (通常是指 "Angular 2+" 或 "Angular v2 及更高版本")[5][6] 是一个基于 TypeScript 的 开源 Web 应用框架 由 Google 的 Angular 团队以及社区中的一些个人和公司共同领导。Angular 是由 AngularJS 的同一个开发团队完全重写的。
Angular 和 AngularJS 之间的区别
在设计上,Angular 是 AngularJS 的完全重写。
- Angular 没有“作用域”或控制器的概念,其架构中的主要角色是一些层次化的组件。[7]
- Angular 具有不同的表达式语法,主要是用
"[ ]"
来表示属性绑定,以及用"( )"
来表示事件绑定[8] - 模块化 – 许多核心功能都已模块化
- Angular 建议使用 Microsoft 的 TypeScript 语言,该语言引入了如下特性:
- TypeScript 是 ECMAScript 6 (ES6) 的超集,并且与 ECMAScript 5 (即: JavaScript) 向后兼容。
- 动态加载
- 异步模板编译
- RxJS 提供了迭代式回调。RxJS 在状态可见性和调试方面有局限,不过可以使用诸如 ngReact 或 ngrx 之类的响应式第三方库来解决这些问题
- 支持 Angular Universal,它可以在服务器上运行 Angular 应用程序
历史
命名
最初,团队将这份 AngularJS 的重写版本称为 “Angular 2”,但这在开发人员之间引起了混乱。为了明确起见,该团队宣布应该为这两个框架分别使用各自的术语,其中 “AngularJS” 专指 1.X 版本,而不带 “JS” 的 “Angular” 则专指版本2及更高版本。[9]
版本 2
在2014年10月22~23日的 ng-Europe 会议上发布了Angular 2.0。[10][11] 2.0 版的重大变化在开发人员之间引起了很大争议。[12] 2015年4月30日,Angular 开发组宣布 Angular 2 从 Alpha 推进到 Developer Preview。[13] Angular 2 于2015年12月推进至 Beta 版,[14] 并于 2016年5月发布了首个 rc 版本。[15] 其最终版本于2016年9月14日发布。
版本 4
2016年12月13日发布了 Angular 4,它跳过了版本号 3,以免由于路由模块的版本的未和其它模块对齐而造成混淆(路由模块在之前已经作为 v3.3.0 发布了)。[16] 其最终版本于2017年3月23日发布。[17] Angular 4 向后兼容 Angular2。[18]
Angular 4.3 版是次要版本,这意味着它没有破坏性变更,是 4.xx 的直接替代品。
版本 4.3 中的特性
- 引入了 HttpClient,这是一个更小、更易于使用且功能更强大的库,可用于发起 HTTP 请求。
- 一些新的路由器生命周期事件,用于追踪守卫和解析过程。生命周期事件(比如 NavigationStart)集合中加入了四个新事件:GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd。
- 有条件的禁用动画。
版本 5
Angular 5 于2017年11月1日发布。[19] Angular 5 的主要改进包括对渐进式 Web 应用的支持、一个构建优化器,以及一些与 Material Design 相关的改进。[20]
版本 6
Angular 6 于2018年5月4日发布[21]。这是一个主版本,其改进重点不在于底层框架,而在于工具链,其目的是让工具链能在将来与 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) 的依赖库更新。[22]
版本 8
Angular 8 于2019年5月28日发布。特性包括:为所有应用代码进行差异化加载、针对惰性加载路由的动态导入、Web workers、支持 TypeScript 3.4,并且把 Angular Ivy 作为可选的预览特性。Angular Ivy 的可选预览特性包括:[23]
- 生成的代码在运行时更易于阅读和调试
- 更快的重新构建
- 改进了有效载荷的大小
- 改进了模板类型检查
- 向后兼容
未来的版本
最值得期待的特性之一是 Ivy [23],它是一个向后兼容的、基于增量式 DOM 架构的全新渲染引擎。Ivy 从设计之初就考虑到了摇树优化,这意味着应用的发布包中只会包含那些在应用中真正用到的 Angular 部件。
可以预期,每一个版本都会向后兼容前一个版本。Google 承诺每年会进行两次升级。
支持政策与时间表
所有主版本都提供了 18 个月的支持。其中包括 6 个月的活跃支持,在此期间会定期发布更新和补丁。然后是12个月的长期支持(LTS),在此期间只会发布关键修复程序和安全补丁。[24]
版本 | 状态 | 发布 | 活跃期结束 | 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
此章节需要扩充。 (2019年8月1日) |
Angular Material 是一个 UI 组件库,它在 Angular 中实现了 Material Design。[25][26][27][28]
另请参阅
参考资料
- ^ Angular, version 2: proprioception-reinforcement. blogspot.com. September 14, 2016 [2017-03-18].
- ^ Release 17.3.9. 2024年5月15日 [2024年5月20日].
- ^ GitHub - angular/angular: One framework. Mobile & desktop.. 31 December 2018 –通过GitHub.
- ^ angular/CHANGELOG.md at master · angular/angular. GitHub. [2019-10-19].
- ^ r/Angular2. reddit.
- ^ AngularJS 与 Angular 2+: 一份详细的比较. 6 April 2018.
- ^ Angular 文档. angular.io.
- ^ AngularJS 和 Angular 之间有什么区别?. gorrion.io. September 19, 2017 [2018-01-28].
- ^ Angular: Branding Guidelines for AngularJS. [2017-03-04].
- ^ Coman Hamilton. A sneak peek at the radically new Angular 2.0. [2015-10-21].
- ^ Ng-Europe schedule.
- ^ Coman Hamilton. Angular 2.0 announcement backfires. [2015-10-21].
- ^ @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.
- ^ Angular: Angular 2 Beta. angularjs.blogspot.it. [2016-07-13].
- ^ angular/angular. GitHub. [2016-05-04].
- ^ Ok... let me explain: it's going to be Angular 4.0. angularjs.blogspot.kr. [2016-12-14].
- ^ Angular 4.0.0 Now Available. angularjs.blogspot.ca. [2017-03-23].
- ^ Angular 4 coming in 2017, to be backwards compatible with Angular 2. react-etc.net. [2016-12-14].
- ^ Fluin, Stephen. Version 5.0.0 of Angular Now Available. [2 November 2017].
- ^ Angular 5 JavaScript framework delayed.
- ^ Version 6.0.0 of Angular Now Available. [4 May 2018].
- ^ Fluin, Stephen. Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more. Angular Blog. 2018-10-18 [2019-06-07].
- ^ 23.0 23.1 Fluin, Stephen. A plan for version 8.0 and Ivy. Angular Blog. 2019-02-08 [2019-06-07].
- ^ Angular. angular.io. [2019-06-07].
- ^ 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 (英语).
- ^ Hajian, Majid. Progressive Web Apps with Angular: Create Responsive, Fast and Reliable PWAs Using Angular. Apress. 2019-05-22: 30. ISBN 9781484244487 (英语).
- ^ Kasagoni, Shravan Kumar. Building Modern Web Applications Using Angular. Packt Publishing Ltd. 2017-05-29: 173. ISBN 9781785880032 (英语).
- ^ Clow, Mark. Angular 5 Projects: Learn to Build Single Page Web Applications Using 70+ Projects. Apress. 2018-02-20: 245. ISBN 9781484232798 (英语).
外部链接
|
|
|
|