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
- Ember学习(1):Ember核心概念
- Ember.js 指引--核心概念
- Ember
- Ember学习(6):Observers
- Ember学习(7):Bindings
- Ember学习(2):Ember的命名约定
- Ember 翻译——入门三:核心概念
- Ember学习(3):类和实例
- Ember学习(4):计算型属性
- Ember.js学习总结
- Ember.js学习笔记
- Ember.js学习笔记
- Ember.js 概念详解--路由器
- Ember.js 概念详解--模型
- #1 Ember中的对象
- Ember学习(8):REOPENING CLASSES AND INSTANCES
- Ember旅程系列(八) -- 使用Ember Data
- Ember 从0到1
- Linux内核协议栈之关键数据结构及关系图(v2.6.18)
- Linux内核协议栈之数据发送与接收流程详图(v2.6.18)
- ArcGIS 10.1 如何连接数据库
- 最短路径算法—Floyd-Warshall算法分析与实现
- 用移动硬盘安装win7
- Ember学习(1):Ember核心概念
- 《跟我一起阅读nginx源代码》听课笔记
- 第十二周 项目1--长颈鹿类对动物类的继承(public)
- iostream.h和iostream 区别
- 谷底蒺藜(五十三)
- Linux终端命令-程序文件相关命令(1)
- Java中HashMap遍历的两种方式
- golang internals
- stm8s 时钟库函数选择内部RC初始化