Web前端框架Angular4.0.0 正式版发布


Posted in Javascript onMarch 28, 2017

前言

angular4.0.0正式版现在可以使用了。这是自我们宣布angular改版后,首次发布的专业版本。它向下兼容,支持所有使用了angular2.x.x版本的应用程序。

我们很高兴和大家分享这个版本,它包括最近的3个月中我们做的功能上的主要改进。我们努力让开发者们能够很容易的接受angular4.0.0。

新版本的特性

•更轻量化、更快

在这个新版本上,我们履行了我们的承诺,我们做到了让Angular的程序变的更轻量化,更快。但是我们还没有完全的优化完,在接下来的日子中,你会看到我们将着重于这方面的改进。

•视图引擎

我们在后台改变了生成的AOT代码样式。这个变化将减少大多数情况下生成的60%的组件代码。它可以使你自己的模板更个性化,复用率更高。

在我们新版本还没发布的时候,我们听到很多开发者认为如果他们将angular更新到4.0.0,angular4.0.0将会使他们的生产束将降低。为了更好的了解我们对视图引擎做的改进,欢迎阅读我们的开发文档。

•动画包

我们在@angular/core中新增了很多我们自己的动画效果包。这就意味着,你用或不用,动画包就在那里,不离不弃。

这个变化同样会让你更容易的找到文档,更好的实现自动完成。你也可以从@angular/platform-browser/animations中导入浏览器动画模型,以此来为你的主要模块实现你需要的动画效果。

新功能

•*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,这是angular的所改即所见特性。这是angular团队通过的第一个来自于使用者,社区推动发展的一个项目。这个版本包括过去几个月内我们开发团队及社区开发者的,共同努力的结果。Angular的平台服务器部分包含了Universal的专业代码。

如果想了解更多的Augular的Universal,请查阅Angular/平台服务器中的一个新方法,renderModuleFactory,或者查看Rob Wormald的演示库。更多的文档和代码即将发布。

•TypeScript 2.1和2.2的兼容性

我们让Angular支持了最近的几个TypeScript的版本。这将会提升ngc的速度,此外,你的程序还将得到更好的类型检查。

•模块的源映射

当你的模块中的某个因素会造成错误时,我们会生成一个源映射,给出模块中产生错误的上下文位置。

包的变化

•Flat ES Modules (Flat ESM / FESM)

我们现在扁平化我们组件的版本(我们在EcmaScript模块通过格式化代码来控制版本,具体参见我们的示例文件)。这种行为将会帮助 你进行tree-shaking,帮助减少你的生产术的大小,加快编译,翻译,以及在某些情况下浏览器的加载。

•Experimental ES2015 Builds

我们现在也选择使用ES2015将我们的包扁平化,格式化。这种选择是带有实验性质和冒险进入的。开发商已经通报了,把这些包汇总将会增加7%的大小。尝试一下这些新的包,配置编译环境来解决包中的‘ec2015'属性。json超出了这些模块的属性。

•Experimental Closure Compatibility

现在我们所有的代码都有闭包注释,使其尽可能的利用先进的闭包优化,从而导致减小的束大小和更好的tree shaking代码优化。

更新4.0.0

更新到4.0.0是和你更新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

•window下更新:

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服务或者ng命令,一切就都就绪了。

如果你依赖动画,可以在你的root NgModule下从@angular/platform-browser/animations模块中导入新的BrowserAnimationsModule类。

如果不需要动画,除了动画存在小问题,你的代码可以直接编译和运行。从Angular/core下引入包是过时的一种做法,正常的做法应该是从@angular/animations导入新的包,导入{ trigger, state, style, transition, animate }等。

如果你想看到更多改变你的应用程序需要的信息,你可以参考我们正在做的交互式更新指南。

已知问题

angular4的其中一个目标是使angular兼容TypeScript的strictNullChecks设置,使其支持一个更严格的子集类型的授权。我们发现在发布候选版时,我们需要做各种工作,来保证angular4在各种使用情况下都可以正常运行,所以为了防止应用程序中途停止运行,我们故意设置4.0版本不支持strictNullChecks。我们会很快解决这个问题的,预计在4.1版本,我们将支持strictNullChecks。(问题编号:15432)。

下一步呢?

和我们发布2.x版本的时间表一样,我们正在制定未来6个月的版本发布的工作计划。你很快就能看到4.0.0的补丁,并且我们已经在开发4.1版本了。我们将继续努力让Angular变的更小和更快,我们还会开发新的功能,比如说@angular/http,@angular/service-worker, and @angular/language-service的正式版本。

你也应该持续关注、更新我们的文档,一旦CLI稳定发布,我们将提供相应的架包作者的指导。

来源于angular4.0.0发布时的公告,译者:niithub

原文发布时间:Thursday, March 23, 2017

翻译时间:2017年3月24日

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JavaScript 克隆数组最简单的方法
Feb 12 Javascript
详细分析JavaScript函数定义
Jul 16 Javascript
CSS中position属性之fixed实现div居中
Dec 14 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
Apr 07 jQuery
Vue非父子组件通信详解
Jun 12 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 Javascript
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 #Javascript
js实现多行文本框统计剩余字数功能
Mar 28 #Javascript
js实现下拉框效果(select)
Mar 28 #Javascript
vue2.0获取自定义属性的值
Mar 28 #Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 #Javascript
利用NPM淘宝的node.js镜像加速nvm
Mar 27 #Javascript
Vue中的v-cloak使用解读
Mar 27 #Javascript
You might like
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
js用图作提交按钮或超连接
2008/03/26 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python zip函数打包元素实例解析
2019/12/11 Python
python实现字符串和数字拼接
2020/03/02 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
后勤自我鉴定
2013/10/13 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
中层干部考核评语
2015/01/04 职场文书
党员争先创优承诺书
2015/01/20 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js