Backbone.js视图中究竟是什么this.el?

时间:2014-06-18 23:53:27

标签: javascript backbone.js

我对Backbone视图中el的含义感到困惑。一些教程(例如this one)使得el似乎是正在创建的视图的,其中render方法应该附加视图到el。其他人(如this)将其视为视图本身的元素。有关于此的最佳做法吗?

2 个答案:

答案 0 :(得分:3)

el绝对是视图对应的元素,而不是其父元素。在您的第一个示例中,他们将整个页面body视为视图,然后在渲染时,他们插入组成它的组件。我想这可能适合代表整个页面的顶级视图。 Backbone为您提供了很大的灵活性(即绳索可以自行挂起),因此您可以通过多种方式进行操作。一般来说,无论如何,如果您实际构建并附加视图的组件,然后将其更多地附加到DOM,则效果最佳。这在第二个示例中提到,并在Backbone docs本身中提及:

  

所有视图都始终具有DOM元素(el属性)   他们已经被插入到页面中了。以这种方式,   视图可以随时呈现,并插入到DOM中   曾经,为了获得尽可能少的高性能UI渲染   尽可能回流和重新涂漆。

Marionette这样的项目实现了很多Backbone最佳实践,让您可以在更高的抽象级别上运行。我强烈建议您查看它,而不是试图自己弄清楚所有最佳练习模式。

答案 1 :(得分:0)

它有点...... el代表你的视图将被渲染成的dom元素。视图的模板可能包含多个顶级元素。为了简化操作,当主干呈现视图时,它使用“父”元素来包装模板的内容。默认情况下,此元素是div(设置tagName以覆盖此设置和/或设置className以在其上设置css类)并且是el所指的。