作者|孙薇编辑|尾尾经历了6个RC版本之后,Angular项目组终于在今天发布了新版,即 正式版 Angular 4.0.0。新版的 Angular 有哪些值得关注的点,究竟带来了哪些新特性?如何升级?且看本文一一道来。 值得关注的点  速度更快、体积更小

这个版本不仅速度更快、体积更小,还对内置指令NgFor和NgIf以及模板的source map等功能进行了优化。

向后兼容

该版本向后兼容大多数应用中的2.x.x系列。

强力优化代码

新版本还优化了View引擎,改进后AoT生成的代码将减少约60%,而且模板越复杂,所优化的代码量就越大。

动画部分单独打包

Angular将动画部分从@angular/core拆分出来,单独打包。将核心模块精简后,在不使用动画时产品中将不包含冗余的动画代码。如果需要动画,可使用相关功能自行导入。

新的特性

这次的正式版本带来的新特性如下:

优化了内置指令nglf和ngFor

新版本中的模板对于绑定语法做了些修改,将支持开发者使用if/else类型的语法,并支持在展开Observable(可观察对象)等代码中分配局部变量。

<div *ngIf="userList | async as users; else loading"><user-profile *ngFor="let user of users; count as count" [user]="user"></user-profile><div>{{count}} total users</div>
</div>
<ng-template #loading>Loading...</ng-template>

Angular Universal的服务器端渲染

Universal本来只是一个社区主导型项目,允许开发者在服务器端运行Angular,后被Angular官方集成。这也是集成之后Universal的首次发布,包含了过去数月中Universal团队的工作成果。目前大多功能已集成到@angular/platform-server模块中,移步看Github上的相关案例:

https://github.com/angular/angular/blob/56f232cdd70a352cb9151bc7cfe8981bc2710ea6/modules/%40angular/platform-server/src/utils.ts#L63-L72

或查看Rob Wormald的 Demo Repository:

https://github.com/robwormald/ng-universal-demo/

TypeScript 2.1与2.2的兼容

Angular的TypeScript目前已更新到2.2版本,一方面提高了ngc的速度,同时在应用中进行type检查时,体验也更优秀。当前版本向下兼容。

模板的源映射

目前如果模板出现错误,我们会生成源映射,以了解原始模板中的前因后果及背景环境。

如何升级到 4.0.0 版本

升级到最新版本非常简单,不过要确认一点:是否需要动画。大多情况下可用下面的命令来解决问题:

在Linux/Mac上:

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save

在Windows上:

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

然后再运行常用的ng serve或者npm start命令,就完成了。

特殊情况下,如果开发者需要依赖动画Animations,可在root NgModule中通过@angular/platform-browser/animations导入新的BrowserAnimationsModule模块,否则可能会遇到错误。不建议使用@angular/core,请通过import { trigger, state, style, transition, animate } from '@angular/animations'来导入。

为了方便大家升级,官方更贴心地推出了 Angular Update Guide (https://angular-update-guide.firebaseapp.com/ )功能,点击可快速选择适合自己的升级方案。

为什么跳过Angular 3?

根据Angular团队首席开发Igor Minar的说法:随着Angular 2的发布,Angular团队引入了语义化版本控制规范,即:将语义化版本用三组数字来表示,按照major.minor.patch的顺序排列,如2.3.1。

Patch版本每周发布,通常只修复问题,不加入新的功能。Minor版本每月发布,加入一些新的功能,但相对旧版本来说没有太大更改。Major版本每半年发布一次,加入一些新功能,并可能带来一些重大更改。

之前最新的Angular router版本号是3.3.0,而其它模块的版本号是2.2.0,由于版本号不同步,团队计划将其同步,直接采用4.0.0作为新版的版本号。

由于Angular团队计划每半年发布一个主要(Major)版本,因此按计划Angular 5将于2017年9月发布。

参考链接

http://angularjs.blogspot.hk/2017/03/angular-400-now-available.html

https://github.com/angular/angular/releases

Angular4.0.0正式发布,附新特性及升级指南相关推荐

  1. mysql+8.0+新特性_MySQL 8.0备受瞩目的新特性大放送!

    原标题:MySQL 8.0备受瞩目的新特性大放送! 作者介绍 杨奇龙,目前就职于有赞科技,负责数据库运维工作,熟悉MySQL性能优化.故障诊断.性能压测. MySQL于 2016-09-12正式发布8 ...

  2. c#3.0加入的一些新特性——泛型集合

    c#3.0加入的一些新特性 1.泛型集合 2.隐式类型 3.自动实现属性 3.匿名方法 4.扩展方法 5.Lambda表达式 1.泛型集合 在.NET2.0中没有泛型集合定义集合用ArrayList定 ...

  3. 开发者必看|Android 8.0 新特性及开发指南

    背景介绍 谷歌2017I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0.谷歌在今年3 月21日发布 Androi ...

  4. Python 3.8 稳定版正式发布,新特性全面解读

    早在之前关于 Python 新版本的文档在官方一就直处于更新模式中,就在昨日 Python 3.8 稳定版正式发布了,让我们来看看新版本有哪些新特性呢? Python 3.8.0 稳定版的新特性 1P ...

  5. python3.8新特性 逻辑表达式_Python3.8正式发布!新特性解析在这里

    Python3.8正式发布!新特性解析在这里 诗书塞外 Python程序员 10月14日,Python 3.8 正式版发布.这也意味着一个Python开发周期的结束,和另一个开发周期的开始.Pytho ...

  6. Java 11 正式发布,新特性解读

    Java 11 正式发布,新特性解读 杨晓峰   2018 年 9 月 26 日 话题:Java语言 & 开发 不知不觉 JDK 11 已经发布了,从 9 开始,JDK 进入了让人学不动的更新 ...

  7. Java8新特性教程 - 终极指南

    转载来源:https://www.javacodegeeks.com/2014/05/java-8-features-tutorial.html Java 8 新特性教程 - 终极指南 编者按:在这篇 ...

  8. Android studio 4.2新特性及升级异常

    Android studio 版本及特性系列目录 Android 12 终于来了,你准备好了吗? Android studio 4.2新特性 Android studio 4.1新特性 Android ...

  9. python3字符串转数字_Python 3.6.0 正式版发布附新特性说明

    计划在上周发布的Python3.6.0推迟到昨日发布,你可以点击这里下载最新版的Python3.6.0,那么此次的新版本带来了哪些新的特性呢?下面我们去看一下Python的官方文档. What's N ...

最新文章

  1. 阿里某员工哀叹:头条的文档太混乱!阿里的文档读起来舒服!
  2. UIWebView如何加载本地图片
  3. 源字符集与执行字符集
  4. 02-JDBC连接MySQL数据库【查询数据】
  5. boost::log::to_log_manip用法的测试程序
  6. 通过IEnumerable和IDisposable实现可暂停和取消的任务队列
  7. python 关键字大全_一日一技:用实例列举python中所有的关键字(01)
  8. mysql-5.7.24-linux_Linux下安装mysql-5.7.24
  9. quartus仿真20:模8的二进制计数器
  10. Liferay7 BPM门户开发之15: Liferay开发体系简介
  11. php 0x颜色 转换,rgb和十六进制颜色互转
  12. 数据融合(data fusion)原理与方法
  13. “background-image:url(data:image”data类型的Url格式简介
  14. java中常用的加密工具
  15. 伤寒杂病论.辨太阳病脉证并治(上)
  16. 美如初见:护肤的真相
  17. 后台管理系统中的CRUD【以用户维护为例】
  18. dell服务器sas2.5英寸1t硬盘10k,0XTH17 ST900MP0026 900GB 15K SAS 2.5寸DELL服务器硬盘
  19. 如何快速为没有书签pdf制作书签
  20. 问题 H: 逃出迷宫

热门文章

  1. CodeForces - 351E Jeff and Permutation(贪心)
  2. CodeForces - 1339E Perfect Triples(打表找规律)
  3. PAT (Basic Level) 1080 MOOC期终成绩(模拟+stl)
  4. js检测鼠标是否在操作_原生JS趣味demo:炫酷头像鼠标追随效果的实现
  5. 2021已去,2022未来
  6. 安卓进阶系列-04自定义原型图片显示(CircleImageView)的使用
  7. 1039. 到底买不买(20)
  8. [bzoj2159]Crash 的文明世界
  9. VC2008中处理CStatic控件的单击STN_CLICKED消息
  10. 抓取dump的头文件