jQuery jquery-tmpl路线图

时间:2012-03-14 09:13:55

标签: jquery templating jquery-templates

出于某种原因,开发jQuery模板插件(jquery-tmpl)已被搁置。从阅读有关该主题的博客博客文章来看,似乎将来会再次包含它或者用不同方法的东西取代(例如jsRender& jsViews)

在jQuery中实现模板化的未来证明方法是什么? (使用beta的东西是可以的)

2 个答案:

答案 0 :(得分:5)

长期策略是用JsRender和JsViews替换模板插件。这两个项目都接近测试版。我的建议是现在使用jquery-templates,然后在发布时切换到JsRender。模板语法类似,因此在时机成熟时切换并不困难。有人可能会创建一个自动更新模板的工具......

退房:

https://github.com/BorisMoore/jsviews https://github.com/BorisMoore/jsrender

http://www.borismoore.com/2012/03/approaching-beta-whats-changing-in_06.html

答案 1 :(得分:1)

令人沮丧的是,这个问题已经超过一年了,情况并没有真正改变。 JsViewsJsRenderjQuery-tmpl更强大,但它们也不再依赖于jQuery和更大的库本身。

这个项目的时间表似乎是一团糟:jQuery-tmpl是beta和第三方,Microsoft contributed itofficial jQuery project的一部分,然后是jQuery dropped it,因为他们认为这些是官方的插件是diluting what jQuery was about。当时完全模板支持将在1.5,但事实并非如此。有一个jQueryUI project page,但它看起来已经死了,而且在任何后续的jQuery版本中都没有关于模板的内容。

基本上,无论你想使用什么模板库,它都与现在的官方jQuery或微软版本无关。

老实说,我认为JsViews已成为一个完整的MVVM框架,而不仅仅是一个模板插件。它看起来相当令人印象深刻,但它不是一个简单或轻量级的jQuery插件或jQuery-tmpl的更新

如果您希望“面向未来”的模板开发,似乎会出现两种广泛的使用模式:

  1. 使用data-*属性。示例包括Knockout(使用包含表达式的data-bind属性)和jQuery loadTemplate。实现起来相当简单,但仅限于可以表示为标记属性的数据绑定。

  2. 使用'mustaches' - {括号。示例包括JsRender,jQuery-tmpl和Mustache。这些功能更强大,因为您可以对模板中的任何文本进行数据绑定。这些彼此不一致 - JsRender使用{{:,jQuery-tmpl使用${,Mustache使用{{等等,但它们对循环,ifs等也有不同的语法。

  3. 将来我认为其中一个可能会成为标准,但与此同时,由于现在没有一个稳定的方法,你无法真正证明未来。

    最后还有underscore.js选项:它们的默认使用与.Net(即<%=)相同的语法,但在使用.Net时,这对开发人员,IDE和编译器来说很混乱,这基本上使得.Net开发人员的默认不兼容。您可以通过提供备用正则表达式来更改它以使用您想要的任何语法。这可能是最“未来证明”(不要改变语法,更改模板解析器),但也限制了您可以使用的优化,并使丰富的工具支持变得困难。

    我认为这种决定取决于背景。如果您只想在现有项目中使用一些模板,我认为最好的选择是使用jQuery-tmpl,但计划使用新的jQuery版本将其保留在内部。如果你想从头开始构建一个使用Javascript MVVM的新应用程序,那么我会评估更完整的框架,但是计划坚持你选择的任何内容。