Templating never gets old.. Daarom gaan we vandaag Mustache en Handlebars vergelijken.

Mustache

Voreerst moet ik toegeven dat de documentatie van Mustache best grappig is. Ze gebruikten hun eigen syntax om uit te leggen wat Mustache kan doen en hoe het werkt. Aan de andere kant, de documentatie is een beetje armoedig, het heeft geen interessante voorbeelden of een goede demo. Hier valt niet veel meer over te vertellen.

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

Handlebars

Handlebars heeft twee documentaties. De eerste die we gaan analyseren is die op hun website (http://handlebarsjs.com/).

Niet zo leuk als de documentatie van Mustache, maar een stuk makkelijker te lezen. Het heeft een installatie gids die echt duidelijk is. De rest van de documentatie is niet zo geweldig. Ja, de meeste voorbeelden zijn vrij duidelijk, maar er zijn enkele andere die geen echte toepassing hebben, bijvoorbeeld het is niet gebruikelijk om de partial te registreren zoals de documentatie zegt dat te doen.

De tweede documentatie is die op de repo (https://github.com/wycats/handlebars.js/). Deze is een beetje interessanter dan die op de pagina. Dit komt omdat het wat meer technische details bevat die nodig zijn om te controleren wanneer we beslissen welke templating taal we gaan gebruiken (d.w.z. compatibiliteit en prestaties)

Winnaar van de ronde: Stuur !

Tweede ronde. Partials

Partials in Mustache zijn heel eenvoudig te implementeren. Ze hoeven niet te worden geregistreerd, gedeclareerd of iets raars.

Handlebars

Partials in Handlebars zijn een beetje complexer dan in Mustache. Je moet de partials registreren met de volgende syntaxis:

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

Het probleem hiermee is dat je geen partials kunt hebben op sub-mappen. U zult bijvoorbeeld niet in staat zijn om dit te doen:

> views

-> partials

– – >header

– – – >Menu

Niet veel meer te vertellen in deze ronde.

Winnaar van de ronde: Snor !

3de ronde. Logica

De filosofie van Snor is om het simpel te houden. Daarom kunnen we maar heel weinig dingen doen in onze view.

  • Arrays
  • If/Else
  • Variabelen weergeven

En dat is het. Hou het simpel.

Handlebars

Handlebars is op dit punt veel complexer. Hier kun je zoveel logica doen als je wilt met handlebars’ helpers. Dit is vrij ontzagwekkend, maar het is ook een gevaarlijk wapen omdat we echt geen tonnen logica op onze view willen.

Als je geen helpers wilt gebruiken, kun je ook hetzelfde doen als in Snor.

Winnaar van de ronde: Draw !

Summary

Ok, tijd om op te sommen.

Ik denk dat als je een kleine app maakt of als je niet echt complexe logica in je view nodig hebt, je Mustache moet gebruiken. Dat komt omdat je je logica zo eenvoudig mogelijk wilt houden en ook omdat je geen gevaarlijke tools in je gereedschapskist wilt hebben.

Aan de andere kant, je app heeft misschien iets complexere logica nodig dan if’s en array’s. In dat geval zou ik zeker kiezen voor Handlebars, maar wees voorzichtig met de helpers en voeg geen logica toe die in de controller zou kunnen zitten.

Dank voor het lezen !

Juan.