javascript - 我需要下划线模板做什么?

标签 javascript templates backbone.js underscore.js

我有非常严格的 OOP flash 背景,我真的很想更深入地了解 Backbone ,我的问题是这样的:

如果我有所有 View 的类(就像在 Flash 中一样),那么 _.template 功能对我有什么用途/好处吗?或者我现在可以忽略它吗?

最佳答案

标记模板,无论是使用下划线还是任何其他模板框架,绝对是有用的。

您似乎将“查看类”和"template"视为某种非此即彼的命题。但事实并非如此。他们完全解决了不同的问题;它们相辅相成,而不是取代。

View 类(在您的例子中为Backbone.View)范围并封装与 View 相关的逻辑和事件处理。这是很好的实践,无论您是否决定使用模板引擎,都应该使用它。

另一方面,模板只是将数据转换为 HTML,仅此而已。这是你的 View 需要做的事情,在我看来,有几种方法可以实现这一点:

  • 通过字符串连接构建 HTML
    • "<div>" + this.model.name + "</div>" ...呃)
  • 使用 jQuery 填充 DOM 节点
    • $(".name").text(this.model.name)荒谬……
  • 使用某种数据绑定(bind)
  • 使用模板引擎
    • 比数据绑定(bind)更轻量、更简单
    • 将表示与逻辑分开

选择是你的,但我不会没有数据绑定(bind)或模板框架。 underscore提供的模板很强大,但我更喜欢语义化、无逻辑的模板,例如 Handlebars .

关于javascript - 我需要下划线模板做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14397594/

相关文章:

javascript - 如何确定 iOS 上的实际视口(viewport)宽度和高度

javascript - 从勇者斗恶龙中绘制史莱姆

c++ - 引用模板的语法(别名?)

javascript - 如何摆脱 Vue JS 项目中的 Delete `··` (prettier/prettier) 错误

python - 当基本模板位于根文件夹中时 TemplateDoesNotExist

C++ 模板——基础

python - 如何使用 Google Python AppEngine 从 Backbone 应用程序发送电子邮件

javascript - backbone.js - "new"关键字后需要括号吗?

http - HTTP响应 header 中 'Allow'和 'Access-Control-Allow-Methods'之间的区别?

javascript - 如何使用正则表达式来表示 18-99 之间的整数范围?