Angular发布1.5正式版,专注于向Angular 2的过渡
angular团队最近发布了angular 1.5的正式版,该版本实现了一次重大的升级,它让仍在使用1.x版本的开发者将能够更容易地过渡到angular 2的开发。
pete bacon darwin在此次发布 声明 的博客文章中写道,这次发布的目的是“改进angular 2的升级路径。我们在这次发布中引入了一些新的特性,让开发者编写的angular 1应用更接近于在angular 2中应用的结构。”
此次发布中,新的module.component()辅助方法是向angular 2进行过渡的最大变更。通过使用该方法,开发者就不必再遵循传统的directive定义对象风格编写directive了。如果读者已经熟悉angular 2的写法,就应当注意到这种相似性。在文章中,作者通过一个示例表现了定义一个新component的方法:
mymodule.component('mycomponent', { template: '<h1>hello {{ $ctrl.getfullname() }}</h1>', bindings: { firstname: '<', lastname: '<' }, controller: function() { this.getfullname = function() { return this.firstname + ' ' + this.lastname; }; } });
在component出现之前,开发者通常只能使用directive,或是通过对controller的非常规使用才能够实现某些场景。但这并不是说component就将完全取代directive的作用了,比方说component就无法用于操作dom,并且所有的component都必须通过自定义的html元素激活,而不支持通过元素的属性触发。按照以上方式定义的component可通过以下代码使用:
<my-component first-name="'alan'" last-name="'rickman'"></my-component>
新的 component指南 对于传统的directive与component之间的区别提供了更完整的说明。
单向绑定
生命周期钩子
绑定至必需的directive
支持多个slot的transclusion
默认transclusion内容
目前在使用1.4版本的开发者可以阅读 迁移指南 以了解迁移时需要进行哪些必要的变更,因为1.5版本中引入了一些破坏性的变更。
在可预见的一段时间内,1.5版本应当是最大的一次变更了。当infoq向bacon darwin问及1.x版本将何去何从时,他是这样回答的:
我们还没有开始计划angular 1的下一次发布周期。由于离angular 2正式发布的日期已经越来越近了,因此如果我们继续开发angular 1,那么也会尽量使它更接近于angular 2。如果为了实现这一点而必须引入破坏性的变更,那么可以预计1.6版本的出现。同时,我们还将继续angular 1.5.x版本的开发,提供bug的修复以及一些较小的特性。总之,这与我们让angular 1.x更易于迁移至angular 2的目标并不冲突。
新的component router特性应当在本周的稍晚时间发布。感兴趣的朋友敬请关注网站!