2012-03-14 10 views
5

Per qualche motivo il plugin jQuery templating di sviluppo (jquery-tmpl) è stato messo in attesa. Dalla lettura di articoli di blog sul tema sembra che o sarà incluso di nuovo in futuro o sostituito da qualcosa con un approccio diverso (es. JsRender & jsViews)jQuery jquery-tmpl roadmap

Quale sarebbe il modo futuro di implementare il template in jQuery ? (Usare la roba beta è ok)

risposta

5

La strategia a lungo termine è quella di sostituire il plug-in del modello con JsRender e JsViews. Entrambi i progetti si avvicinano alla versione beta. Il mio suggerimento sarebbe di usare jquery-templates per ora e poi passare a JsRender quando è stato rilasciato. La sintassi del template è simile, quindi non dovrebbe essere difficile passare allo scadere del tempo. Qualcuno probabilmente creare uno strumento per l'aggiornamento automatico dei modelli ...

Partenza:

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

e

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

1

Frustrantemente questa domanda ha ormai più di un anno e la situazione non è davvero cambiata. JsViews e JsRender sono molto più potenti di jQuery-tmpl, ma non dipendono più da jQuery e da una libreria molto più ampia.

La timeline per questo progetto sembra essere un disastro: jQuery-tmpl era beta e 3a parte, Microsoft contributed it come parte del official jQuery project, poi jQuery dropped it perché si sentivano questi plug-in ufficiali erano diluting what jQuery was about. Al momento il supporto per il modello completo sarebbe stato in 1.5, ma poi non lo era. C'è un jQueryUI project page, ma sembra abbastanza morto, e nulla sui modelli in qualsiasi successiva versione di jQuery.

Fondamentalmente, qualsiasi libreria di modelli che si desidera utilizzare non ha nulla a che fare con alcuna versione ufficiale di jQuery o Microsoft ora.

A dire il vero, penso che JsViews sia diventato un framework MVVM completo piuttosto che un semplice plug-in. Sembra piuttosto impressionante, ma non è un plug-in jQuery semplice o leggero o un aggiornamento di jQuery-tmpl.

Se si vuole lo sviluppo template 'a prova di futuro' sembra che vi siano due grandi modelli di consumo emergente:

  1. Usa data-* attributi. Gli esempi includono Knockout (che utilizza un attributo data-bind contenente un'espressione) e jQuery loadTemplate. Semplice da implementare ma limitato ai binding di dati che possono essere rappresentati come attributi dei tag.

  2. Utilizzare parentesi 'baffi' - {. Gli esempi includono JsRender, jQuery-tmpl e Mustache. Questi sono più potenti in quanto è possibile associare i dati a qualsiasi testo nel modello. Questi non sono coerenti l'uno con l'altro - JsRender utilizza {{:, jQuery-tmpl utilizza ${, Moustache utilizza {{ e così via, ma hanno anche una sintassi diversa per cicli, if ecc.

In futuro penso che uno di questi potrebbe diventare lo standard, ma nel frattempo non si può davvero a prova di futuro, in quanto non v'è un unico approccio stabile ora.

Infine v'è anche la possibilità underscore.js: loro predefinito è di usare la stessa sintassi Net (cioè <%=) ma che è confusione per gli sviluppatori, l'IDE e compilatore quando utilizza Net, che rende praticamente quella predefinita incompatibili per Sviluppatori .Net. Puoi cambiarlo per usare qualsiasi sintassi che vuoi, fornendo un Regex alternativo. Questo è probabilmente il più "a prova di futuro" (non modificare la sintassi, modificare il parser del modello) ma anche limitare le ottimizzazioni che è possibile utilizzare e rendere difficile il supporto di strumenti avanzati.

Penso che con questo tipo di decisione dipende dal contesto. Se si desidera utilizzare solo alcuni modelli in un progetto esistente, ritengo che l'opzione migliore sia l'utilizzo di jQuery-tmpl, ma si preveda di mantenerlo in casa con le nuove versioni di jQuery. Se vuoi creare una nuova applicazione da zero che utilizza un MVVM Javascript, allora valuterei i framework più completi, ma pianifico di mantenere quello che scegli.