Ember学习(1):Ember核心概念

来源:互联网 发布:宸轩网络精选 编辑:程序博客网 时间:2024/04/30 15:05

最近项目需要用来Ember,又要开始新的学习了,由于网上资料比较少,可以找到的基本都是英文,因此,这里对Ember官方网站的Guide进行边看边翻译,以方便自己深化理解。

英文原址:http://emberjs.com/guides/concepts/core-concepts/


开始学习Ember,你必须了解下面列举的一些核心概念。

Ember.js的设计目的是帮助开发者创建任意规模的Web应用,并使它的性能可以和本地App相媲美。为了这个目标,我们需要新的工具和新的概念。我们花了很多时间研究一些本地App框架(比如Cocoa和Smalltalk),从它们那里借用一些想法。

不过,重要的是我们必须记住是什么使Web如此的特殊。许多人认为某个东西被称为Web应用是因为它使用了HTML,CSS和Javascript。事实上,这些只是实现细节。相反,Web的力量来自它可以通过URL来标记和分享。URL是Web应用能够分享和合作的关键。现在,大多数的Javascript框架都把URL当做后来出现的东西来对待,而不是Web成功的主要原因。

Ember.js和它们不一样,它结合了工具还有本地GUI框架的概念,并且对让Web如此强大的URL提供良好的支持。


概念


Template(模板)

template是用Handlebars模板语言编写的,用来描述你的应用的User Interface。每一个template背后都对应到一个model(模型),并且当model改变时template会自动更新自己。除了简单的HTML,template还可以包含:
  • Expressions(表达式),像{{firstName}},它会从template的model那里获取信息并将它插入到HTML中。
  • Outlets(占位符),它是其他template的占位符。当用户浏览你的应用,router(路由器)会将不同的template插入到outlet中。你可以使用{{outlet}} helper(帮助符)将outlet插入到你的template中。
  • Components(组件),它是自定义的HTML元素,你可以使用它来清理重复的模板或者创建可复用的控件。

Router(路由器)

Router负责将URL翻译成一系列嵌套的template,每个一个template都对应一个model。当显示给用户的template或者model发生改变,Ember会自动的更新浏览器地址栏中的URL。这意味着,在任一时刻,用户都可以分享使用URL来分享你的应用。当某人点击了这个链接,他们肯定可以看到和原用户一模一样的内容。

Components(组件)

component是自定义的HTML元素,它的行为使用Javascript来实现,它的外观使用Handlebars模板来描述。有了component,你就可以创建可复用的控件,并简化你的应用的模板。

Models(模型)

model是一个存储持久状态的对象。Template负责将model的数据转化为HTML以显示给用户。在许多应用中,model是通过HTTP JSON API来加载的,尽管如此,Ember对你选择使用那种方式来获取model是一无所知的。

Route(路由)

route是一种可以告诉template它应该使用哪个model的对象。

Controllers(控制器)

controller是存储应用状态数据的对象,template除了对应到一个model之外,还可以可选的对应到一个controller,并且可以从model和controller获取信息。

以上这些就是开发Ember.js应用所需要理解的核心概念,它们被设计成随着复杂度的提升可以方便向上扩展,因此新的功能被添加进来时,不会迫使你回去对你的应用做大的修改。现在你理解了这些对象的作用,你已经准备好了深入学习Ember.js,了解这些对象是如何在一起工作的。


0 0