Ember.js 2.3的发布带来了重要的变化
Ember.js的开发团队已经发布了Ember 2.3的稳定版本以及2.4的首个beta版本。
Ember.js的开发团队在Ember的博客上 宣布 了这些变化,Ember的贡献者Matthew Beale谦称这次更新是一个“较小的发布”。尽管如此,2.3版本带来了几个重要的变化,这其中包括在最新发布的稳定的版本中使用 Ember FastBoot 的能力。
作为Ember CLI 的插件,Fastboot使开发者可以在服务端上呈现Ember.js应用程序,并将已渲染的HTML呈现在浏览器中提供服务,使客户端无需下载JavaScript资源。由于有了新的测试APIs和Fastboot,Ember团队为Ember.Application对象和Ember.ApplicationInstance对象增加了一个新的visit方法。
由于Fastboot还处于测试阶段,2.3版本是其首次可以用于Ember 发布版本之上的版本。需要指出的是,由于Fastboot的一些限制,它并不支持大多数的jQuery,因此Ember.js的开发团队建议“只有最勇敢的开发者才应该考虑尝试部署它到他们的生产环境上”。
Ember最新发布的稳定版本的另一个新功能是上下文组件的引入,这使得多个组件可以独立地分享数据,但将以灵活的方式被调用。下面的例子是Beale在Ember博客上分享的,{{alert-box}}这个组件生成一个上下文组件,这个上下文组件由alert-box-button组件和onclick属性组成。
根据Beale所述“上下文组件是使用component helper的嵌套格式所创造的,可能会传递到属性和位置参数。上下文组件必须用其路径上的一个 .来调用,除非它们被传递到正在调用的component helper。”
{{! app/templates/components/alert-box.hbs }} <div class="alert-box"> {{yield (hash close-button=(component 'alert-box-button' onclick=(action 'close')) )}} </div>
{{! app/templates/index.hbs }} {{#alert-box as |box|}} Danger, Will Robinson! <div style="float:right"> {{#box.close-button}} It's just a plain old meteorite. {{/box.close-button}} </div> {{/alert-box}}
“这个新功能对插件的设计者来说是一个强大的工具,让他们可以生成组件,同时避免让这些有参数的组件成为实际意义上的公用API。” Beale这样说。
目前仍处于beta版本的Ember 2.4向社区承诺,性能改进将优化于新框架特性的开发。用户可以参照Ember 2.3 和 2.4 的更新日志来得到发布版本的全部信息。
Ember.js使用MIT许可证发布。InfoQ的读者可以通过它的 GitHub项目 促成Ember.js的进展。
查看英文原文: Ember.js 2.3 Release Brings Significant Changes
感谢邵思华对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 (已满),InfoQ读者交流群(#2) )。