Templating wird nie alt… Deshalb werden wir heute Mustache und Handlebars vergleichen.

Mustache

Zunächst einmal muss ich zugeben, dass die Dokumentation von Mustache ziemlich lustig ist. Sie verwenden ihre eigene Syntax, um zu erklären, was Mustache kann und wie es funktioniert. Andererseits ist die Dokumentation ein wenig dürftig, es gibt keine interessanten Beispiele oder eine gute Demo. Mehr gibt es dazu nicht zu sagen.

Link zu doc: http://mustache.github.io/mustache.5.html

Handlebars

Handlebars hat zwei Dokumentationen. Die erste, die wir analysieren werden, ist die auf ihrer Website (http://handlebarsjs.com/).

Nicht so lustig wie die Dokumentation von Mustache, aber viel einfacher zu lesen. Sie hat eine Installationsanleitung, die wirklich klar ist. Der Rest der Dokumentation ist nicht so toll. Ja, die meisten Beispiele sind ziemlich klar, aber es gibt einige andere, die keine wirkliche Anwendung haben, z.B. ist es nicht üblich, das Partial zu registrieren, wie es in der Dokumentation steht.

Die zweite Dokumentation ist die aus dem Repo (https://github.com/wycats/handlebars.js/). Diese ist ein wenig interessanter als die auf der Seite. Das liegt daran, dass sie einige technische Details enthält, die wir überprüfen müssen, wenn wir entscheiden, welche Templating-Sprache wir verwenden wollen (z.B. Kompatibilität und Leistung)

Gewinner der Runde: Handlebars !

2. Runde. Partials

Partials in Mustache sind wirklich einfach zu implementieren. Sie müssen nicht registriert, deklariert oder sonst etwas Seltsames werden.

Handlebars

Partials in Handlebars sind ein wenig komplexer als in Mustache. Sie müssen die Partials mit der folgenden Syntax registrieren:

hbs.registerPartials(‚PATH TO FOLDER OR FILE‘);

Das Problem dabei ist, dass Sie keine Partials auf Unterordnern haben können. Zum Beispiel kannst du das nicht tun:

> views

-> partials

– – >header

– – – >Menu

In dieser Runde gibt es nicht mehr viel zu erzählen.

Gewinner der Runde: Schnurrbart !

3. Runde. Logik

Die Philosophie von Mustache ist es, es einfach zu halten. Deshalb können wir in unserer Ansicht nur wenige Dinge tun.

  • Arrays
  • If/Else
  • Variablen anzeigen

Und das ist alles. Keep it simple.

Handlebars

Handlebars ist an dieser Stelle viel komplexer. Hier kannst du so viel Logik wie du willst mit den Handlebars-Helfern machen. Das ist ziemlich genial, aber es ist auch eine gefährliche Waffe, denn wir wollen wirklich nicht tonnenweise Logik in unserer Ansicht.

Wenn du keine Helfer verwenden willst, kannst du auch das Gleiche wie in Mustache tun.

Gewinner der Runde: Draw !

Summary

Ok, Zeit für ein Resümee.

Ich denke, dass man Mustache verwenden sollte, wenn man eine kleine App erstellt oder wenn man nicht wirklich komplexe Logik in seiner View braucht. Das liegt daran, dass du deine Logik so einfach wie möglich halten willst und außerdem willst du keine gefährlichen Tools in deinem Werkzeugkasten haben.

Außerdem könnte deine App ein wenig komplexere Logik als if’s und array’s benötigen. In diesem Fall würde ich auf jeden Fall Handlebars wählen, aber sei bitte vorsichtig mit den Helfern und füge keine Logik hinzu, die im Controller sein könnte.

Danke fürs Lesen !

Juan.