¿Cuáles son las diferencias entre Moustache.js y manillares.js?
Las principales diferencias que he visto son:
- Manillar añade
#if
,#unless
,#with
y#each
- El manillar añade ayudantes.
- Se compilan plantillas de manillares (Bigote también puede serlo)
- Manillar soporta caminos
- Permite el uso de
{{this}}
en bloques (que genera el valor de cadena del elemento actual) Handlebars.SafeString()
(y tal vez algunos otros métodos)- El manillar es de 2 a 7 veces más rápido.
- El bigote admite secciones invertidas (es decir
if !x ...
, )
(Corríjame si me equivoco con lo anterior).
¿Hay otras diferencias importantes que me estoy perdiendo?
Prácticamente lo has logrado, sin embargo, también se pueden compilar plantillas de Moustache.
A Moustache le faltan ayudantes y los bloques más avanzados porque se esfuerza por no tener lógica. Los asistentes personalizados de Manillar pueden ser muy útiles, pero a menudo terminan introduciendo lógica en sus plantillas.
Moustache tiene muchos compiladores diferentes (JavaScript, Ruby, Python, C, etc.). Los manillares comenzaron en JavaScript, ahora hay proyectos como django-handlebars , handlebars.java , handlebars-ruby , lightncandy (PHP) y handlebars-objc .
Ventajas del bigote:
- Elección muy popular entre una comunidad grande y activa.
- Soporte del lado del servidor en muchos lenguajes, incluido Java.
- Las plantillas sin lógica hacen un gran trabajo al obligarte a separar la presentación de la lógica.
- La sintaxis limpia conduce a plantillas que son fáciles de crear, leer y mantener.
Contras del bigote:
- Un poco carente de lógica: las tareas básicas (por ejemplo, etiquetar filas alternas con diferentes clases de CSS) son difíciles.
- La lógica de visualización a menudo se devuelve al servidor o se implementa como una "lambda" (función invocable).
- Para que las lambdas funcionen en el cliente y el servidor, debe escribirlas en JavaScript.
Ventajas del manillar:
- Las plantillas sin lógica hacen un gran trabajo al obligarte a separar la presentación de la lógica.
- La sintaxis limpia conduce a plantillas que son fáciles de crear, leer y mantener.
- Plantillas compiladas en lugar de interpretadas.
- Mejor soporte para rutas que bigote (es decir, llegar profundamente a un objeto contextual).
- Mejor apoyo para los ayudantes globales que el bigote.
Contras del manillar:
- Requiere JavaScript del lado del servidor para renderizarse en el servidor.
Fuente: Análisis de plantillas del lado del cliente: bigote, manillar, polvo.js y más