Jade versus EJS, lequel dois j’utiliser et pourquoi ?
Y a-t-il des autres moteurs de modèle express-compatible qui sont bon et pourquoi ?
Jade versus EJS, lequel dois j’utiliser et pourquoi ?
Y a-t-il des autres moteurs de modèle express-compatible qui sont bon et pourquoi ?
J'ai utilisé de Jade avant. La bonne chose à propos de Jade est que vous avez une syntaxe plus courte qui signifie que vous pouvez taper plus vite. L' block
Jade est assez puissant qui peut m'aider beaucoup lorsque vous traitez avec des complexes de code HTML.
D'autre part, il est difficile de faire certaines choses simples de Jade, de chose comme l'ajout de classes dans un DIV, basé sur une simple condition if. J'ai besoin de mettre quelque chose comme ceci
- if (isAdmin)
div.admin.user
- else
div.user
Jade ne font pas de distinction entre les balises et les variables qui rendent le code est très confus (au moins pour moi)
a(href='http://stackoverflow.com/user/' + user.id)= user.name
Jade est également pas concepteur de compagnie. Mon designer amis souvent de me donner le code HTML et CSS (Ils sont passés à MOINS récemment mais que vous souhaitez toujours utiliser de l'HTML), et pour cette raison, si j'utilise de Jade j'ai besoin de convertir le code HTML de Jade. Aussi en Jade, nous avons besoin d'utiliser des indentations, donc si votre structure HTML devient compliqué, votre code est horrible (en particulier les tableaux). Parfois, je ne sais même pas ce niveau, je suis à
table
thead
tr
td
a
img
tr
td
tbody
tr
td
Récemment, j'ai fait un commutateur à EJS et je suis heureux avec elle jusqu'à présent. Il est très proche du HTML pur et utiliser la même syntaxe que celle de l'interface moteur de template, je suis en utilisant (trait de Soulignement modèle). Je dois dire que tout est plus facile avec EJS. Je n'ai pas à faire la conversion lors de la réception de modèles HTML de mon ami designer. Tout ce que j'ai à faire est de remplacer les parties dynamiques avec les variables passées de ExpressJS. Des choses qui font de moi un fou lors de l'utilisation de Jade sont résolus dans EJS
<div class="<%= isAdmin? "admin": "" %> user"></div>
Et je peux savoir qu'est-ce qu'avec EJS
<a href="http://stackoverflow.com/user/<%= user.id %>"><%= user.name %></a>
Si vous manquez la syntaxe courte de Jade (comme moi), vous pouvez combiner Zen-Coding et EJS qui peuvent vous aider à accélérer le progrès en général. Concernant les performances, je ne vois pas de différences
Cependant, EJS n'est pas aussi puissant que le Jade, il n'a pas de blocs par défaut (ce gars a mis en œuvre une fonctionnalité de blocage pour EJS https://github.com/RandomEtc/ejs-locals)
Donc, il est totalement dépend de vous de choisir ce qui vous met à l'aise. Mais si vous allez utiliser un autre moteur de template pour le frontend comme moi, il est préférable si vous utilisez la même chose pour les deux côtés
P/s: je suis désolé pour mon mauvais anglais, toujours en apprentissage :(
Mise À Jour 16 Décembre 2013:
Récemment, j'ai changé de EJS à Swig (qui a le même concept que celui de Jinja2 en Python monde). La principale raison est le manque de bloc dans EJS même avec l'aide d' ejs-locals
. Swig est également à l'aide de HTML pour les modèles et un grand nombre de fonctionnalités intéressantes que d'un moteur de template devrait avoir par exemple des filtres et des balises qui EJS n'a pas
Je ne dirais pas que l’un est meilleur que l’autre. Ils sont différents, c’est à coup sûr, mais il est « mieux » terme très relatif.
Je préfère SEJ parce que je pense que HTML n’est pas trop mauvais, plus il me permet de travailler avec d’autres personnes sans leur devoir apprendre Jade.
Cependant, Jade est plutôt propre et en fait pour peu soignée de code dans vos vues.
Choisissez ce que vous vous sentez plus à l’aise.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.