2012-03-14 19 views
5

Por alguna razón, el desarrollo del plugin jQuery de plantillas (jquery-tmpl) se ha puesto en espera. Al leer artículos del blog sobre el tema, parece que se incluirá de nuevo en el futuro o se reemplazará por algo con un enfoque diferente (por ejemplo, jsRender & jsViews)jQuery jquery-tmpl roadmap

¿Cuál sería la forma de prueba futura de implementar plantillas en jQuery? ? (El uso de cosas beta está bien)

Respuesta

5

La estrategia a largo plazo es reemplazar el plugin de la plantilla con JsRender y JsViews. Ambos proyectos se acercan a la versión beta. Mi sugerencia sería usar jquery-templates por ahora y luego cambiar a JsRender cuando se lance. La sintaxis de la plantilla es similar, por lo que no debería ser difícil cambiarla cuando llegue el momento. Alguien probablemente creará una herramienta para la actualización de las plantillas de forma automática ...

Salida:

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

y

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

1

Frustrantemente, esta pregunta tiene más de un año de antigüedad y la situación no ha cambiado realmente. JsViews y JsRender son mucho más potentes que jQuery-tmpl, pero ya no dependen de jQuery y de una biblioteca mucho más grande por derecho propio.

La línea de tiempo para este proyecto parece ser un desastre: jQuery-tmpl era beta y tercera parte, Microsoft contributed it como parte de la official jQuery project, a continuación, jQuery dropped it porque sentían estos plug-ins oficiales eran diluting what jQuery was about. En ese momento, el soporte de plantillas completo iba a estar en 1.5, pero luego no lo era. Hay un jQueryUI project page, pero parece bastante muerto, y nada sobre las plantillas en ninguna versión posterior de jQuery.

Básicamente, cualquiera que sea la biblioteca de plantillas que desee utilizar, no tiene nada que ver con ninguna versión oficial de jQuery o Microsoft ahora.

Para ser honesto, creo que JsViews se ha convertido en un framework MVVM completo en lugar de simplemente un plugin de plantillas. Parece bastante impresionante, pero no es un plugin jQuery simple o liviano o una actualización de jQuery-tmpl.

Si desea elaboración de los modelos 'a prueba de futuro' parece que hay dos patrones generales de uso emergente:

  1. Uso data-* atributos. Los ejemplos incluyen Knockout (que usa un atributo data-bind que contiene una expresión) y jQuery loadTemplate. Bastante simple de implementar pero limitado a enlaces de datos que pueden representarse como atributos de etiquetas.

  2. Use 'bigotes' - { soportes. Los ejemplos incluyen JsRender, jQuery-tmpl y Mustache. Estos son más potentes ya que puede enlazar datos con cualquier texto en la plantilla. Estos no son consistentes entre sí: JsRender usa {{:, jQuery-tmpl usa ${, Mustache usa {{ y así sucesivamente, pero también tienen una sintaxis diferente para bucles, ifs, etc.

En el futuro creo que uno de ellos podría convertirse en el estándar, pero mientras tanto usted no puede realmente a prueba de futuro, ya que no hay un único enfoque estable ahora.

Por último, existe también la opción underscore.js: su defecto se utiliza la misma sintaxis que .Net (es decir <%=) pero eso es confuso para los desarrolladores, el IDE y el compilador cuando se utiliza .Net, que básicamente hace que el default incompatible para Desarrolladores de .Net Puede cambiarlo para usar la sintaxis que desee proporcionando un Regex alternativo. Es probable que sea la prueba más "a prueba de futuro" (no modifique su sintaxis, cambie el analizador de plantillas), pero también le restringe las optimizaciones que puede usar y dificulta el soporte de herramientas enriquecidas.

Creo que con este tipo de decisión depende del contexto. Si solo quiere usar algunas plantillas en un proyecto existente, creo que la mejor opción es usar jQuery-tmpl pero planear mantenerlo en casa con las nuevas versiones de jQuery. Si desea construir una nueva aplicación desde cero que utilice un MVVM de Javascript, entonces evaluaría marcos más completos, pero pienso seguir con lo que elija.