16 December 2014

前言

为了学习Ember.js,从而找到的英文资料(http://www.cerebris.com/blog/tags/emberjs/),翻译如下。

温习Ember.js

作为一个客户端框架,Ember.js已经存在相当长的历史。其起源于Sproutcore项目,并作为Sproutcore 1.x(Apple用来构建MobileMe和iCloud的重量级组件)的精简的现代的继任者。当Sproutcore 2变得不再完全兼容Sproutcore 1.x时,项目更名为Amber.js,为了避免与Smalltalk项目Amber引起冲突,又更名为Ember.js(幸亏没取SproutcoreCore.js这个名字)。

这不是历史课

那么Ember.js中,有何特别之处? 其特别之处在于同步

对象可以相互的观察和更新,计算属性可以限制到一个或多个其他的属性,视图中的元素属性由对象属性来约束,视图可以管理其他视图的创建和移除, 事件可以关联到视图的动作中。等等

换而言之,Ember维持应用中的组件的同步,从而使开发者集中处理应用程序对象的定义及其之间的关系,而不是花时间维持之间关系。

会变慢吗

毫无疑问,Ember的同步代码会导致性能的耗损。不过,MVC框架可以减少监听事件、更新数据和HTML的代码。

记住: 任何客户端框架都是由javascript和HTML构成的,以及理性的看待抽象层。 这一点从Ember默认使用Handlebars模板中看出,其中可以随意的混合HTML。

听着不错,但实用吗

Ember的核心成员Yehuda Katz说: “一些诸如ZenDesk,BazaarVoice和LivingSocial的大公司使用了Ember”。此外,开源的持续继承项目Travis CI也是用了Ember。

Cerebris正在将Ember集成到下一代的Syncd中。

Ember本身依然在持续开发,并且其中有些部分依然处于变动中。文档持续进行,但不可能触及框架中所有有用的部分。阅读Github上的议题,以及StackOverflow上的问题,成效卓越。

特性X, Y, Z ?

起初,Ember缺乏其他JavaScript的MVC框架中的某些功能,比如RESTful的持久层以及客户端路由。但是,这些问题都很快就被解决了。

下面的部分将对Ember.js的绑定功能、计算性能、以及自动更新模板进行介绍,最终拼凑成一个简单的支持CRUD的Rails程序。

Beginning Ember.js on Rails: Part 1

Ember.js并不依赖任何服务器端应用。实际上,它可用来控制单页面web应用或PhoneGap手机应用。开始学习Ember时,可以通过结合Rails来编写一个简单的CRUD程序。

由于存在一些版本的问题,其文章上提供的例子稍后再试。




傲娇的使用Disqus