我来自一个非常严格的OOP flash背景,我真的想更深入地了解骨干,我的问题是:
如果我对所有视图都有类(就像在flash中一样),_。模板功能对我来说,还是我现在可以忽略它?
标记模板,无论是带有下划线还是任何其他模板框架,都绝对是有用的。
似乎您将视图类和模板视为非此即彼的命题。,但事实并非如此。它们完全解决了一个不同的问题;它们相互补充,而不是相互取代。
视图类(在您的例子中是Backbone.View
)作用域并封装了与视图相关的逻辑和事件处理。这是一个很好的实践,无论您是否决定使用模板引擎,都应该使用它。
模板只是简单地将数据转换为HTML,仅此而已。这是你的视图需要做的事情,在我看来,有几种方法可以实现这一点:
- 通过字符串连接构建HTML
-
"<div>" + this.model.name + "</div>"
…哈哈)
-
- 用jQuery填充DOM节点
-
$(".name").text(this.model.name)
和荒诞…
使用某种类型的数据绑定 -
- 插件确实存在(主干)。模型绑定,铆钉,粘接…)
- 使用模板引擎
- 比数据绑定更轻、更简单
- 保持表示与逻辑分离
- 很好,但是Backbone不支持开箱即用。
是您的选择,但是我不会没有数据绑定或模板框架。underscore提供的模板很强大,但我更喜欢语义化的、没有逻辑的模板,比如Handlebars。
如果您有JSON对象在视图中作为HTML输出,那么您可以从中获得一些好处。
根据我的经验,如果你打算做一个不仅仅是基本的应用程序,而且它也将成长,那么模板是一个很好的实践,它将为你以后节省一些时间。
您可以在模板文档页面获得更多信息http://underscorejs.org/#template