【发布时间】:2013-11-18 19:36:20
【问题描述】:
我使用过使用基于 DOM 的模板的 angular 以及使用基于字符串的模板的 Ember。但我从来没有在骨干上工作过。谁能告诉我它使用哪种模板方法?
【问题讨论】:
标签: backbone.js javascript javascript-framework
我使用过使用基于 DOM 的模板的 angular 以及使用基于字符串的模板的 Ember。但我从来没有在骨干上工作过。谁能告诉我它使用哪种模板方法?
【问题讨论】:
标签: backbone.js javascript javascript-framework
Backbone 不会强制您使用任何特定的模板引擎,您可以使用您想要的模板来呈现模板。
按照您认为合适的方式渲染 UI。 Backbone 不知道你是否 使用下划线模板,Mustache.js,直接 DOM 操作, 服务器端渲染的 HTML 的 sn-ps 或渲染中的 jQuery UI 功能。有时你会为每个模型创建一个视图......有时 您将有一个视图,可以一次渲染数千个模型,在 紧密的循环。两者都可以适用于同一个应用程序,具体取决于 涉及的数据量,以及 UI 的复杂性。
(src:http://backbonejs.org/#FAQ-tim-toady)
Backbone 与您首选的 HTML 方法无关 模板。您的渲染函数甚至可以将 HTML 组合在一起 字符串,或使用 document.createElement 生成 DOM 树。然而, 我们建议选择一个不错的 JavaScript 模板库。小胡子.js, Haml-js 和 Eco 都是不错的选择。因为 Underscore.js 是 已经在页面上,_.template 可用,并且是一个很好的 如果您更喜欢简单的插值 JavaScript 样式模板,请选择此选项。
(src:http://backbonejs.org/#View-render)
(rtfm!)
【讨论】:
Backbone.js 是一个适用于任何模板系统的 MV* 框架。通常,您将使用 Underscore 库为简单的应用程序创建模板。 Underscore 库是 Backbone 的依赖项,因此它始终可用于您的 Backbone.js 应用程序。
Underscore.js 的新替代品刚刚发布,名为“Lo-Dash”,其唯一目的是完全取代 Underscore.js。它还有一个模板系统,您可以在 Backbone.js 应用程序中使用它。只需放入 Lo-Dash,删除下划线即可无缝运行。当 Lo-dash 使用 Backbone.js 进行测试时,所有的单元测试都通过了,这意味着它是一个完美的 Underscore.js 替代品。 Lo-Dash API 在编写时也考虑到了性能,因此它用更好的高性能模式(如“for 循环”等)替换了速度较慢、笨重的 JS 模式……此外,它还提供了下划线所不具备的 30 种附加功能。 请自行查看:http://lodash.com/
在您检查了 Lo-Dash 之后,仍然需要比我检查其他一些模板系统更多的东西,例如:Handlebars.js、Mustache.js、Jade、Haml-js 等......
【讨论】: