385 Stimmen

Was sind die Unterschiede zwischen Mustache.js und Handlebars.js?

Die wichtigsten Unterschiede, die ich gesehen habe, sind:

  • Lenker fügt hinzu #if , #unless , #with y #each
  • Handlebars fügt Helfer hinzu
  • Lenker-Vorlagen werden kompiliert (Mustache kann auch kompiliert werden)
  • Lenkstangenstützen Pfade
  • Ermöglicht die Verwendung von {{this}} in Blöcken (die den String-Wert des aktuellen Elements ausgeben)
  • Handlebars.SafeString() (und vielleicht einige andere Methoden)
  • Lenker ist 2 bis 7 Mal schneller
  • Schnurrbartträger Umgekehrte Abschnitte (d.h. if !x ... )

(Bitte berichtigen Sie mich, wenn ich mit dem oben Gesagten falsch liege).

Gibt es noch andere wichtige Unterschiede, die ich übersehe?

9voto

Jakub Wasilewski Punkte 2876

Ein weiterer subtiler Unterschied ist die Behandlung falscher Werte in {{#property}}...{{/property}} Blöcke. Die meisten Mustache-Implementierungen befolgen hier einfach die JS-Falschheit und rendern den Block nicht, wenn property est '' oder '0'.

Lenker wird machen den Block für '' y 0 , nicht aber andere falsche Werte. Dies kann bei der Migration von Vorlagen zu Problemen führen.

5voto

-Zusätzlich zur Verwendung von "this" für Lenker und der verschachtelten Variable innerhalb eines Variablenblocks für Schnurrbart, können Sie auch den verschachtelten Punkt in einem Block für Schnurrbart verwenden:

    {{#variable}}<span class="text">{{.}}</span>{{/variable}}

5voto

midart Punkte 51

Ich habe das Gefühl, dass einer der erwähnten Nachteile für "Handlebars" nicht mehr wirklich gültig ist.

Handlebars.java ermöglicht es uns nun, dieselben Vorlagensprachen für Client und Server zu verwenden, was für große Projekte mit mehr als 1000 Komponenten, die serverseitiges Rendering für SEO erfordern, ein großer Gewinn ist.

Werfen Sie einen Blick auf https://github.com/jknack/handlebars.java

0voto

Michael Quad Punkte 79

enter image description here

Hier sehen Sie einige Geschwindigkeitstests verschiedener Mustaches im Vergleich zu Lenkern. Mustache speichert Vorlagen im Speicher, ohne dass der Benutzer etwas dafür tun muss, deshalb lasse ich es einmal laufen. Es ist 3 mal langsamer als mustache. Der Dateisystem-Cache kann die Entwicklung verlangsamen und das Endergebnis kann mit einem einzigen Durchlauf vergleichbar sein. Vertrauen Sie diesen Aussagen nicht blind, vor allem was die Geschwindigkeit angeht (PHP ist schnell, weil opcache+jit aktiviert sind).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X