2012-03-14 14 views
5

Z jakiegoś powodu rozwijana wtyczka szablonów jQuery (jquery-tmpl) została wstrzymana. Od czytania artykułów Blogu na ten temat wydaje się, że albo zostanie ponownie włączone w przyszłości lub zastąpione przez coś z innego podejścia (np jsRender & jsViews)jQuery jquery-tmpl roadmap

Jaki byłby przyszłościowe sposób wdrażania templating w jQuery ? (Używanie bety jest w porządku)

Odpowiedz

5

Długoterminową strategią jest zastąpienie wtyczki szablonu JsRender i JsViews. Oba projekty zbliżają się do wersji beta. Moja propozycja polegałaby na używaniu szablonów jquery, a następnie przełączeniu się na JsRender po jego wydaniu. Składnia szablonu jest podobna, więc przełączanie nie powinno być trudne, gdy nadejdzie czas. Ktoś prawdopodobnie stworzyć narzędzie do automatycznego aktualizowania szablonów ...

Check out:

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

i

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

1

Frustrująco to pytanie ma już ponad rok, a sytuacja tak naprawdę się nie zmieniła. JsViews i JsRender są dużo silniejsze niż jQuery-tmpl, ale nie są już zależne od jQuery i znacznie większej biblioteki.

Oś czasu dla tego projektu wydaje się być bałagan: jQuery tmpl była beta i 3rd party, Microsoft contributed it jako część official jQuery project, następnie jQuery dropped it ponieważ czuli te oficjalne pluginy były diluting what jQuery was about. W tym czasie pełne wsparcie dla templariuszy miało wynosić 1,5, ale potem tak nie było. Jest jQueryUI project page, ale wygląda na całkiem martwą i nic o szablonach w kolejnych wersjach jQuery.

Zasadniczo, niezależnie od tego, jakiej biblioteki szablonowej chcesz użyć, nie ma to nic wspólnego z oficjalnym wydaniem jQuery lub Microsoft.

Szczerze mówiąc, uważam, że JsViews stał się pełnym środowiskiem MVVM, a nie tylko szablonową wtyczką. Wygląda całkiem imponująco, ale nie jest to prosta lub lekka wtyczka jQuery ani aktualizacja jQuery-tmpl.

jeśli chcesz „przyszłościowe” rozwój szablonu pojawiają się dwa zasadnicze wzory wykorzystanie pojawiających:

  1. Zastosowanie data-* atrybutów. Przykłady obejmują Knockout (który używa atrybutu data-bind zawierający wyrażenie) i jQuery loadTemplate. Dość proste w implementacji, ale ograniczone do powiązań danych, które mogą być reprezentowane jako atrybuty znaczników.

  2. Użyj nawiasów "wąsy" - {. Przykłady obejmują JsRender, jQuery-tmpl i Mustache. Są one potężniejsze, ponieważ możesz powiązać dowolny tekst w szablonie. Nie są one zgodne - JsRender używa {{:, jQuery-tmpl używa ${, Wąsy używa {{ itd., Ale mają też inną składnię pętli, znaków ifs itp.

W przyszłości myślę, że jedno z nich może stać się standardem, ale w międzyczasie nie można tak naprawdę potwierdzić przyszłości, ponieważ obecnie nie ma jednego stabilnego podejścia.

Wreszcie istnieje również opcja underscore.js: ich domyślnym jest użycie tej samej składni jak .NET (czyli <%=), ale to mylące dla programistów, IDE i kompilator przy użyciu .NET, które w zasadzie sprawia, że ​​niezgodne z domyślnym Programiści .Net. Możesz go zmienić, aby użyć dowolnej składni, zapewniając alternatywny Regex. To prawdopodobnie najbardziej "przyszły dowód" (nie zmieniaj składni, zmieniaj parsera szablonów), ale także ograniczasz możliwości optymalizacji, które możesz wykorzystać, i utrudniasz zaawansowane narzędzia.

Myślę, że z taką decyzją zależy to od kontekstu. Jeśli chcesz tylko użyć kilku szablonów w istniejącym projekcie, myślę, że najlepszą opcją jest użycie jQuery-tmpl, ale zaplanuj, aby utrzymywał go w domu z nowymi wersjami jQuery. Jeśli chcesz zbudować nową aplikację od zera, która używa Javascript MVVM, to oceniłbym bardziej kompletne frameworki, ale planuję trzymać się tego, co wybierzesz.