Ember.js中的视图与组件

布拉德利·特拉格(Bradley Trager)

我正在学习ember.js,并且试图了解视图和组件之间的区别。我将两者都视为制作可重用组件的一种方式。

在Ember网站上查看:

通常仅出于以下原因在Ember.js中创建视图:
-需要复杂的用户事件处理时
-要创建可重用组件时

从Ember的组件网站上:

组件是一个自定义HTML标记,您可以使用JavaScript实现其行为,并使用Handlebars模板描述其外观。它们使您可以创建可重用的控件,以简化应用程序的模板。

那么视图和组件之间的主要区别是什么?在我偏爱使用组件上的视图而反之亦然的情况下,又有什么常见的例子呢?

直观像素

灰烬视图

一个Ember.View目前仅限于由W3C的为您创建的标签。但是,如果您想定义自己的特定于应用程序的HTML标记,然后使用JavaScript实现它们的行为?您实际上无法使用Ember.View做到这一点

灰烬成分

这正是组件允许您执行的操作。实际上,W3C目前正在制定“自定义元素”规范是一个好主意

Ember的组件实现尽可能与Web组件规范保持紧密联系。一旦自定义元素是在浏览器中广泛应用,你应该能够轻松地将灰烬组件迁移到W3C标准,让他们可以通过其他框架可用,以及已经采取了新的标准。

这对我们非常重要,因此我们正在与标准机构紧密合作,以确保我们的组件实现与Web平台的路线图相匹配。

还要注意的重要一点是,Ember.Component实际上是Ember.View(一个子类),但是它是完全隔离的其模板中的属性访问转到视图对象,并且操作也以视图对象为目标。无法访问周围context或外部的controller 所有上下文信息,而Ember.View确实可以访问周围的控制器,例如,在视图内部您可以执行类似的操作this.get('controller'),从而使您能够当前与视图关联的控制器。

那么视图和组件之间的主要区别是什么?

那么,除此之外组件的主要差别让你创建自己的标签,并在当未来某个时间点自定义元素都可以也迁移/使用,将支持自定义元素其他框架的组成部分,确实在某些时候灰烬成分视具体实现情况而定,视图将有些过时。

在我偏爱使用组件上的视图而反之亦然的情况下,又有什么常见的例子呢?

遵循以上内容,这显然取决于您的用例。但是根据经验,如果您需要在视图中访问其周围的控制器等,请使用Ember.View,但是如果您想隔离视图并仅传递它需要工作的信息以使其与上下文无关而且更可重用,请使用Ember.Component

希望能帮助到你。

更新资料

随着Ember 2.0的发布,现在鼓励您在大多数情况下使用组件而不是视图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ember.js中创建可重用的视图/组件中的代码复制

来自分类Dev

将具有参数的视图组件渲染到命名出口ember.js中

来自分类Dev

在Ember.js中销毁后使用组件重新渲染视图

来自分类Dev

在Ember.js中销毁后使用组件重新渲染视图

来自分类Dev

在ember.js的模板中插入视图

来自分类Dev

Ember.js中的嵌套视图

来自分类Dev

在模板Ember Js中动态添加视图

来自分类Dev

ember-cli 2.13 中的应用程序视图/组件

来自分类Dev

Ember:访问Ember组件中的数据存储

来自分类Dev

Ember js 表 <td> 视图

来自分类Dev

在Ember.js中的嵌套组件中触发动作

来自分类Dev

Ember组件中的共享状态

来自分类Dev

在组件中操纵Ember模型

来自分类Dev

Ember组件中的异步加载

来自分类Dev

在组件中操纵Ember模型

来自分类Dev

如何处理包装视图或视图控制器中Ember组件“发送”的操作?

来自分类Dev

如何在ember.js的组件中获取商店

来自分类Dev

我们可以从ember js中的组件路由吗?

来自分类Dev

如何将服务注入Ember JS中的每个组件

来自分类Dev

Ember js控制重复组件中的类绑定

来自分类Dev

组件是否打算在Ember.js中创建数据?

来自分类Dev

在 Ember JS 组件中初始化数组

来自分类Dev

Ember this 在组件的组件中未定义

来自分类Dev

从ember组件类获取ember组件的属性

来自分类Dev

在Ember.js中扩展视图或使用mixin

来自分类Dev

ember.js hbs TextFieldView中的视图帮助器

来自分类Dev

Ember.js-在嵌套资源中隐藏父视图

来自分类Dev

Ember.js-在嵌套资源中隐藏父视图

来自分类Dev

针对 ember.js 服务中的更改自动更新组件(ember 2.12)