【Angular 6】 将会带来什么新特性?

0_1523257989910_深度截图_选择区域_20180409151303.png

https://github.com/angular/angular/blob/master/docs/RELEASE_SCHEDULE.md

按照官方的版本计划,Angular 6.0应该在2018年4月4日发布,目前已经延期了。

目前最新的版本是4月7日发布的6.0.0-rc.3,https://github.com/angular/angular/releases

主要的新特性

按照官方的说法,Angular 6体积将会更小、更加易于使用,同时运行速度也更快。当然,最重要的是,官方承诺平滑升级,没有破坏性变更。

主要新特性包括:

  • Angular elements
  • CDK
  • Ivy renderer
  • Bazel & Closure compiler
  • ng update & ng add
  • RXJS 6, Webpack 4, TypeScript 2.7 support

Angular elements

Angular Elements可以用来把组件打包成Web Component,甚至可以用在非Angular项目里面。

CDK

利用@angular/cdk,你可以基于@angular/material来构建自己的UI组件库。同时删除了对@angular/flex-layout的依赖,因为CDK将会支持响应式设计。

Ivy renderer

默认不会启用Ivy渲染引擎,如果你想用,需要手动修改编译参数。启用Ivy渲染引擎会带来很多好处:渲染速度更快、打包的体积更小,同时更加灵活。

(注:实际上这已经是第二次换渲染引擎了,第一次换到Render2,这次换成了Ivy,希望Ivy能带来让人眼前一亮的效果。)

Bazel and Closure compiler

“作为一款高质量的工具, ABC (Angular + Bazel + Closure) 工程里面倾注了我们大量的努力,你可以利用它来构建高质量的Angular应用。 ”

Bazel是Google内部一直使用的强大构建工具,根据Brad Green在上次演讲(http://www.ngfans.net/topic/105/post )中提到的内容,Angular项目组采用Bazel的原因是,为了让构建工具保持统一,同时也让外部公司能享受到Google内部构建工具带来的好处。

对于Angular来说,最看中的是Bazel的增量编译特性和编译速度,按照官方的说法,Bazel的目标是:重新编译项目到浏览器能运行,只要2秒的时间。

Closure也是Google内部一直使用的一款工具,它可以对JS代码进行压缩和优化,生成的包体积更小(比如典型的死码消除特性)、对JS引擎更加友好。

ng update & ng add

从Angular CLI 1.7 开始你可以运行:

ng update

这样就可以自动更新package.json里面定义的依赖包,RxJS和TypeScript版本也会自动更新。

另一个命令是:

ng add

这个命令用来帮助开发者给自己的应用增加新特性。例如,你可以把一款普通应用变成Progressive Web Apps (PWA) ,你还可以一开始就指定应用的类型,而不是创建空白的项目。

App Budgets

最新版本的CLI将会增强打包的体积控制,你可以预先配置一个阀值,如果打出来的包体积超过阀值,cli将会给出提示和警告。

RXJS 6, Webpack 4 & TypeScript 2.7 support

升级到RXJS 6可以缩小打包的体积。

Angular目前使用的webpack版本是3.x,很快webpack 4.x就要来了,Angular CLI已经做好了升级的准备。同样,升级到webpack新版本之后,可以利用scope hosting特性让编译之后的体积变得更小。

最后一点就是,Angular 6将会升级TypeScript到2.7 。

@业余小编 意译重写,英文版原文 https://medium.com/@jeroenouw/angular-6-what-can-we-expect-fe5d04589d3b

赞赞赞

66666666666

萌新躲在角落里瑟瑟发抖,公司还在用4

@ng初学者 对一般使用者来说,没差~因为大多数变动,都跟Angular底层实现有关。

Good!

期待ing…

昨天看了视频,将渲染的是Kala,非常漂亮😄

登录后回复

与 Angular开发者 的连接断开,我们正在尝试重连,请耐心等待