Angular4.0.0发布总览文章
翻译自angular.io上的关于4.0.0版本发布的文章,内容主要是介绍了4.0.0版本下的改进以及接下来还会有的其他更新,4.0.0其实已经出来好多天了,截止目前都已经到了4.0.1版本了,这也是前两日笔者一时兴起拿想ng2写个自己的新网站时安装angular时无意发现几个模板与组件声明时的错误提示变得极其精准,一看发现angular版本居然都到4.x了并且依赖里提示还要多安装一个@angular/animation的包。看来谷歌没有食言,真的可以追赶iphone的更新脚步了。
angular 4.0.0 现在可用了
angular 4.0.0 版本现在已经悄悄的完成可用了。这是依据announced adoption of Semantic Versioning文章发布的一个主要版本,并且向下兼容绝大多数基于2.x.x版本的应用。
我们很激动的来社区分享这一发布,它包含了一些主要的提升与我们过去三个月工作完成的功能。我们致力于确保开发者能很容易的更新到这一发布版本。
什么是新的
更小&更快
这一版本我们履行了我们的诺言来让angular应用更小且更快。绝不是说现在我们已经做到了,但你会看到我们将在接下来几个月做出更远的提升。
视图引擎
我们更改了AOT方式下的代码。这些更改减少了约60%生成的组件的代码的量。你的组件越复杂,节省的代码也就越多。
在接下来的补充时期,我们听到了很多迁移到4版本的开发者反馈说他们的产品最后压缩减少了数百kb的量。
你可以在Design Doc中查看更多关于视图引擎的内容。
动画包
我们现在将动画移出@angular/core到了单独的包中。这意味着如果你不使用动画,这一额外的代码就不会被绑定到你最终的产品代码中。
这一更改同时允许你更容易的查找文档来收益于自动补全功能。你可以通过引入@angular/platform-browser/animations中的BrowserAnimationsModule来添加自己的动画到你的主NgModule中。
新特性
改进*ngIf和*ngFor
我们的模板绑定语法现在有了两个有用的改动。你现在可以使用if/else风格的语法,并且在展示一个可观察变量时分配给本地变量。
<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在一个服务器上,现在也更新到最新了,并且这是从Universal本本后的第一次发布,最初只是一个社区驱动的项目,现在被angular团队采用了。这一发布现在包含了Universal团队这几个月来内在的与外在的成果。主要的Universal代码现在被放在@angular/platform-server中。
为了学习更多Angular Universal的内容,可以查看新的@angular/platform-server中的 renderModuleFactory方法,或者Rob Wormald的Demo Repository。更多的文档与代码示例即将到来。
TS2.1与TS2.2兼容
我们更新了angular到更新的TS版本,这将会强化ngc的速度,你可以得到更强的类型检查支持。
模板的SourceMap
现在,当有因为你的模板代码造成的错误时,我们将会生成source map来给出有意义的原始模板上下文错误。
包更改
Flat ES Module(Flat ESM/FESM)
我们现在装载我们的模块的扁平版本(在example file查看我们代码在EcmaScript模块格式下的rolledup版本)。这一格式能帮助摇树优化,帮助减少你生成的压缩代码的大小,并且加快构建,编译与在浏览器中确定场景的速度。
在 "The cost of small modules"中查看更多关于Flat ES Modules的改进。
实验性的ES2015构建
我们同样装载我们的包在ES2015 Flat ESM 格式下。这一选项还是实验性的且可选的。开发者反馈压缩大小节省了超过7%。想要尝试这些新的包,你可以配置你的构建工具链来配置package.json中的es2015属性来替换原有的module属性。
实验性的闭包兼容
我们的全部代码现在都有了闭包的注释,来帮助进行进一步的闭包优化,以得到更小的压缩代码以及更优的摇树优化。
更新到4.0.0
更新到4很简单,差不多就像是将你的angular依赖更新到最新版本,并且做两个检查如果你想要动画功能的话。这在大多数情况下都有效:
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指令,一切都将很顺利。
如果你依赖于动画,引入@angular/platform-browser/animations中的BrowserAnimationsModule到你的根模块中。如果不这么做,你的代码也会运行,但是动画将报错。从@angular/core引入动画已经弃用了,你需要从@angular/animations中引入{ trigger, state, style, transition, animate }这些东西。
我们正在生产Angular Update Guide如果你想要查看更多你的应用需要做出的改变的话。
已知问题
4版本的一个目标是确保angular兼容TS的strictNullChecks设定,允许更严格的类型约束的子集。我们发现在RC时期这会做更多的工作来确保这能在所有使用场景下起作用,所以我们有意让4版本不兼容strictNullChecks设定,来避免急切采用这一TS模式而破坏了app,并在4.1版本时会适当的支持。(tracking issue is #15432)
下一步做什么
我们正致力于接下来六个月的路线图,依据我们在2.x版本时的 published release schedule。你将会看到我们已经开始了4.0版本来给4.0.0版本做补丁。我们将继续使angular更小且更快,并且我们将实验性的进化比如@angular/http, @angular/service-worker以及@angular/language-service这些模块的能力。
你同样应该保持关注我们的文档,包括CLI的稳定版本,以及包库作者的导览。
Angular4.0.0发布总览文章的更多相关文章
- Angular4.0.0正式版发布
来源于angular4.0.0发布时的公告,译者:niithub 原文发布时间:Thursday, March 23, 2017 翻译时间:2017年3月24日 angular4.0.0正式版现在可以 ...
- CAP 5.0 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 5.0 版本正式版.同时我们也很高兴的告诉你 CAP 已经有越来越多的用户并且变得越来越流行. 在 5.0 版本中,我们主要致力于更好的支持 .NET 5 以 ...
- Castle Core 4.0.0 alpha001发布
时隔一年多以后Castle 项目又开始活跃,最近刚发布了Castle Core 4.0.0 的alpha版本, https://github.com/castleproject/Core/releas ...
- GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]
Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手 粘贴时有一个版权问题 本文原 ...
- 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布
首先引用Wiki的介绍一下Hasor: “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...
- Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持
Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持. Spring.Net.Framework,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开 ...
- 【AngularJS】 2.0 版本发布
[AngularJS] 2.0 版本发布 w5cValidator[AngularJS] 2.0 版本发布 w5cValidator 插件基于angular原有的表单验证,在原有的基础上扩展了一些 ...
- springboot2.0(一):【重磅】Spring Boot 2.0权威发布
就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...
- WordPress版微信小程序3.0版发布
距离WordPress版微信小程序上一个版本的发布过去了一个月了.在此间,我的工作有些变化,加上正在开发新版本,目前开源版的完善和升级稍稍有些滞后. 虽然这个版本是3.0版,期间有个过渡的2.8版,不 ...
随机推荐
- ASP.NET Core MVC上传、导入、导出知多少
前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天才研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...
- H5缓存-Manifest
在app中更新h5页面一直有缓存问题.默认什么都不做的情况下,app有一定的空间缓存页面.一开始更新之后会马上加载,等到app缓存空间上来之后更新就无法下载了.安卓能够清理缓存空间,ios就只能卸载重 ...
- Asp.Net 常用工具类之加密——非对称加密RSA算法
踏入程序员这个行业也有几年了,几年中有收获(技术加强),有付出(时间和亚健康状态).当然喏,并不后悔,代码路还长!!! On The Way,永不止步!!! 开发过程中也积累了一些自己的经验.代码块和 ...
- Asp.net缓存技术(HttpRuntime.Cache)
一.缓存: 5个等级的缓存 1级是网络级缓存,缓存在浏览器,CDN以及代理服务器中 (举个例子:每个帮助页面都进行了缓存,访问一个页面的代码非常简单) 2级是由.net框架 HttpRuntime ...
- Git基础教程(二)
继续上篇Git基础教程(一),在开篇之前,先回顾一下上篇中的基本命令. 配置命令:git config --global * 版本库初始化:git init 向版本库添加文件:git add * 提交 ...
- 008 Java集合浅析3
在前面的几节里,本教程从整体架构上去把握了JDK中的集合框架,并简单分析了其中Collection组的顶级接口,知道Collection接口的常见直接子接口有List.Set和Queue,并就这三个子 ...
- wemall doraemon中Android app商城系统解决左侧抽屉菜单和viewpager不能兼容问题
完美解决左侧抽屉菜单和viewpager不能兼容左右滑动的问题,可进行参考. WeMall-Client/res/layout/wemall_main_ui.xml </RadioGroup&g ...
- 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通
1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 618 Solved: 217 ...
- netflix zuul 学习
netflix zuul 是netflix开发的一个EDGE SERVICE. 主要是作为一个API Gateway 服务器,可以实现安全,流量控制等功能. 我看的是1.x的版本,Zuul1.x的实现 ...
- 3-15 JS基础知识02
一.For循环: For (var i = 0; i <= 10; i++){ 循环体: } 注意:For循环中的表达式是可以省略的,省略以后是个死循环. odd:奇数 even : 偶 ...