2012-03-03 20 views
15

Duplicar posible:
Javascript templating engines?¿Qué es un motor de plantillas?

sigo tropezar con javascript motores de plantillas y no tengo ni idea de lo que es su propósito. ¿Alguien podría explicarme como si tuviera cinco años? ¿Cuáles son? ¿Puede el desarrollador front-end hacer uso de estos?

+2

Los motores de plantilla JS son para hacer lo que debería haberse hecho en el lado del servidor. Si los está usando, ya sea que esté ejecutando node.js y * are * haciéndolo en el lado del servidor, o está desarrollando una gran aplicación de ajax que nunca intentará mostrar en los motores de búsqueda. – cHao

+0

mootools, scriptaculous, yui, jquery, dojo –

+1

Esos no son motores de plantilla ... esos son marcos. – cHao

Respuesta

18

Los motores de plantillas de JavaScript se utilizan a menudo al escribir clientes JS gruesos o como motores de plantillas "normales" cuando se utilizan js del lado del servidor como Node.js.

En lugar de saturar el código mediante la generación de HTML mediante la concatenación de cadenas, etc., en su lugar utiliza una plantilla e interpola la variable en ellas.

Por ejemplo, en el ejemplo de abajo se pasa en una matriz foo al motor de plantillas que luego interpola (reemplaza el marcador de posición $ {datos}) con el punto i de la matriz foo:

//pseudo code 
<table> 
<tr> 
    for each variable data in foo 
    <td>${data}</td> 
    end 
<tr> 
</table> 

En frameworks como backbone.js típicamente usa una plantilla para implementar la parte de vista del patrón MVC.

Hay muchos tipos diferentes de motores de plantillas en JS. Algunos son puertos directos de marcos del lado del servidor como ERB, HAML, etc. Otros están desarrollados especialmente para trabajar con JavaScript, por ejemplo, Pure

Existe un debate sobre cuánta expresividad debe darle el motor de plantillas porque poner lógica en sus plantillas es generalmente es algo malo Debido a esto, algunos motores de plantilla están diseñados específicamente para no permitirle poner lógica en ellos, es decir, Mustache

Cuestiones relacionadas