jQuery jquery-tmpl路线图

问题描述:

出于某种原因,开发jQuery模板插件(jquery-tmpl)已被搁置。从主题阅读博客博客文章似乎要么将在未来再次列入或东西用不同的方法(如jsRender & jsViews)jQuery jquery-tmpl路线图

更换什么是jQuery中实现模板的面向未来的方式? (使用测试版的东西是可以的)

长期战略是用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

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

这个项目的时间表似乎是一个烂摊子:jQuery的TMPL是测试和第三方,Microsoft contributed itofficial jQuery project的一部分,那么jQuery的dropped it,因为他们认为这些官方插件是diluting what jQuery was about。当时完整的模板支持将在1.5,但事实并非如此。有一个jQueryUI project page,但它看起来很死,而且在随后的jQuery版本中没有关于模板的内容。

基本上,无论您想要使用的模板库,它与现在任何官方的jQuery或Microsoft发布无关。

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

如果你想“面向未来”模板开发有似乎是使用新兴的两大模式:

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

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

在未来,我认为其中之一可能成为标准,但在此期间你不能因为现在没有一个稳定的做法真的面向未来。

最后也有个underscore.js选项:其默认是使用相同的语法。NET(即<%=),但使用的.Net,这基本上使该默认为不兼容时为开发人员,IDE和编译器混淆.Net开发人员。您可以通过提供替代正则表达式来更改它以使用任何您想要的语法。这可能是最“面向未来”(不改变你的语法,改变你的模板解析器),而且还限制了你,你可以使用什么样的优化,使丰富的工具支持困难。

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