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

时间:2022-09-02 08:16:14

本文首发地址:Angular4.0.0正式发布,附新特性及升级指南

作者|孙薇

编辑|尾尾

经历了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:

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 (Angular Update Guide )功能,点击可快速选择适合自己的升级方案。

为什么跳过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作为新版的版本号。

Angular4.0.0正式发布,附新特性及升级指南的更多相关文章

  1. 业余草分享 Spring Boot 2&period;0 正式发布的新特性

    就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...

  2. Spring Boot 2&period;0正式发布,新特性解读

    作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中 ...

  3. Jdk5&period;0中出现的新特性

    掌握jdk5.0中出现的新特性1.泛型(Generics)2.增强的"for"循环(Enhanced For loop)3.自动装箱/自动拆箱(Autoboxing/unboxin ...

  4. C&num;6&period;0 中的那些新特性

    C#6.0 中的那些新特性 前言 VS2015在自己机器上确实是装好了,费了老劲了,想来体验一下跨平台的快感,结果被微软狠狠的来了一棒子了,装好了还是没什么用,应该还需要装Xarmain插件,配置一些 ...

  5. Android 5&period;0&lpar;棒棒糖&rpar;&rpar;十大新特性

    Android 5.0(棒棒糖))十大新特性 1. 全新Material Design设计风格 Android Lollipop全新的设计语言是受到了多种因素影响,是一种大胆的平面化创新.换句话说,谷 ...

  6. Android 7&period;0&lpar;牛轧糖&rpar;新特性

    Android 7.0(牛轧糖)新特性 谷歌正式在I/O大会现场详细介绍了有关Android 7.0的大量信息.目前,我们已经知道,新一代Android操作系统将支持无缝升级,能够通过Vulkan A ...

  7. 腾讯云安全:开发者必看|Android 8&period;0 新特性及开发指南

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 A ...

  8. 开发者必看|Android 8&period;0 新特性及开发指南

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

  9. (数据科学学习手札129)geopandas 0&period;10版本重要新特性一览

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在前不久,我们非常熟悉的Python地理 ...

随机推荐

  1. C&num;:获取环境信息

    外部环境数据1.需要管理员权限2.需要安装office2003以上完整版3.需要安装flash reader 10.0以上4.需要安装adodb reader;Adobe Acrobat X Pro; ...

  2. 运行QQ出现initialization failure 0x0000000c错误和浏览器上不了网

    出现QQ出现initialization failure 0x0000000c错误和浏览器上不了网的问题,原因是关机的时候没有正常关闭导致的. 解决方法: 1.我们在开始菜单栏中的附件中找到“命令提示 ...

  3. &lbrack;转&rsqb; java书籍&lpar;给Java程序猿们推荐一些值得一看的好书 &plus; 7本免费的Java电子书和教程 &rpar;

    7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的 ...

  4. 序列化与反序列化总结&lpar;Serializable和Parcelable&rpar;

    序列化是指将对象的状态信息转换为可以存储或传输的形式的过程. 在Java中创建的对象,只要没有被回收就可以被复用,但是,创建的这些对象都是存在于JVM的堆内存中,JVM处于运行状态时候,这些对象可以复 ...

  5. Mac os下安装brew

    1.首先没下载xcode,请先安装xcode,安装的继续往下面看 2.安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuser ...

  6. 安装scrapy框架的常见问题及其解决方法

    下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...

  7. Beyond Globally Optimal&colon; Focused Learning

    这里对WWW 2017文章<Beyond Globally Optimal: Focused Learning for Improved Recommendations>进行一个简单的分析 ...

  8. linux服务器ssh、公匙和密钥实战详解

    一..我们先建好一上haiwen用户用来,做为密码钥和SSH对像 二.修改vi /etc/ssh/sshd_config 文件,禁用ROOT远程直接登录. 三.ssh的公钥认证配置,只能用密匙才能登录 ...

  9. Android 4&period;1&period;2系统添加重启功能

    对于Android的的手机或者平板长期使用,感觉会出现慢的情况,所以偶尔还是需要重启一下,而长按电源键弹出的菜单又没有重启选项,所以特在此记录自己添加这个功能的过程. 首先关机的那个弹出菜单是在fra ...

  10. Ubuntu 16&period;04&period;2 配置VNC

    1安装包apt-get update sudo apt install xfce4 xfce4-goodies tightvncserversudo apt-get install vnc4serve ...