2012-03-14 4 views
5

Pour une raison quelconque, le plugin de développement jQuery (jquery-tmpl) a été mis en attente. De la lecture des articles de blog de blog sur le sujet il semble que soit il sera inclus à nouveau dans l'avenir ou remplacé par quelque chose avec une approche différente (par exemple jsRender & jsViews)jQuery jquery-tmpl roadmap

Quel serait le moyen futur d'implémenter le modèle dans jQuery ? (L'utilisation de trucs bêta est correcte)

Répondre

5

La stratégie à long terme consiste à remplacer le plugin de template par JsRender et JsViews. Les deux projets approchent de la version bêta. Ma suggestion serait d'utiliser jquery-templates pour le moment, puis passer à JsRender lors de sa sortie. La syntaxe du template est similaire, il ne devrait donc pas être difficile de basculer quand le moment viendra. Quelqu'un va probablement créer un outil pour la mise à jour des modèles automatiquement ...

Départ:

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

et

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

1

Frustrante, cette question a maintenant plus d'un an et la situation n'a pas vraiment changé. JsViews et JsRender sont beaucoup plus puissants que jQuery-tmpl, mais ils ne dépendent plus de jQuery et d'une bibliothèque beaucoup plus grande.

Le calendrier de ce projet semble être un gâchis: jQuery-tmpl était bêta et 3ème partie, Microsoft contributed it dans le cadre du official jQuery project, puis jQuery dropped it parce qu'ils pensaient que ces officiels plug-ins étaient diluting what jQuery was about. À ce moment-là, le soutien des modèles serait de 1,5, mais ce n'était pas le cas. Il y a un jQueryUI project page, mais il semble assez mort, et rien sur les modèles dans une version ultérieure de jQuery. Fondamentalement, quelle que soit la bibliothèque de modèles que vous voulez utiliser, elle n'a rien à voir avec une version officielle de jQuery ou de Microsoft. Pour être honnête, je pense que JsViews est devenu un framework MVVM complet plutôt qu'un simple plugin. Cela semble assez impressionnant, mais ce n'est pas un plugin jQuery simple ou léger ou une mise à jour de jQuery-tmpl.

Si vous voulez le développement du modèle « à l'épreuve », il semble y avoir deux grands schémas d'utilisation émergents:

  1. Utilisez data-* attributs. Les exemples incluent Knockout (qui utilise un attribut data-bind contenant une expression) et jQuery loadTemplate. Assez simple à implémenter mais limité aux liaisons de données qui peuvent être représentées comme des attributs de balises.

  2. Utilisez 'moustaches' - { parenthèses. Les exemples incluent JsRender, jQuery-tmpl et Mustache. Elles sont plus puissantes car vous pouvez lier des données à n'importe quel texte du modèle. Ceux-ci ne sont pas compatibles entre eux - JsRender utilise {{:, jQuery-tmpl utilise ${, Moustache utilise {{ et ainsi de suite, mais ils ont aussi une syntaxe différente pour les boucles, etc.

À l'avenir, je pense que l'une d'entre elles pourraient devenir la norme, mais en attendant, vous ne pouvez pas vraiment preuve avenir car il n'y a pas une approche unique et stable maintenant.

Enfin il y a aussi l'option underscore.js: leur valeur par défaut est d'utiliser la même syntaxe que .Net (c.-à-<%=), mais qui est source de confusion pour les développeurs, l'IDE et le compilateur lors de l'utilisation .Net, ce qui en fait essentiellement que par défaut incompatible pour Développeurs .Net Vous pouvez le modifier pour utiliser la syntaxe que vous souhaitez en fournissant un autre Regex. C'est probablement la preuve la plus «future» (ne changez pas votre syntaxe, changez votre analyseur de modèle) mais elle vous restreint également sur les optimisations que vous pouvez utiliser et rendre difficile la prise en charge des outils riches.

Je pense qu'avec ce genre de décision, cela dépend du contexte. Si vous voulez juste utiliser quelques modèles dans un projet existant, je pense que la meilleure option est d'utiliser jQuery-tmpl mais prévoyez de le conserver en interne avec les nouvelles versions de jQuery. Si vous voulez construire une nouvelle application à partir de zéro qui utilise un MVVM Javascript, alors j'évaluerais des frameworks plus complets, mais je prévois de m'en tenir à ce que vous choisirez.