Каковы плюсы и минусы как Jade, так и EJS для Node.в JS шаблонизатор? [закрытый]



Jade против EJS, каковы плюсы и минусы каждого и для каких целей они предназначены?



есть любые другие экспресс-совместимые шаблонные движки это хорошо и почему?

634   2  

2 ответов:

Я использовал нефрит раньше. Хорошая вещь о Джейд является то, что у вас есть более короткий синтаксис, который означает, что вы можете печатать быстрее. Элемент block в Jade довольно мощный, который может мне очень помочь при работе со сложным HTML-кодом.

С другой стороны, трудно сделать некоторые простые вещи в Jade, такие как добавление классов в DIV на основе простого условия if. Мне нужно поставить что-то вроде этого

- if (isAdmin)
  div.admin.user
- else
  div.user

Джейд также не различают между тегами и переменные, которые делают код очень запутанным (по крайней мере для меня)

a(href='/user/' + user.id)= user.name

Джейд также не является дизайнером. Мои друзья-дизайнеры часто дают мне HTML и CSS (они перешли на менее недавно, но все еще хотят использовать HTML), и по этой причине, если я использую Jade, мне нужно преобразовать HTML в Jade. Также в Jade нам нужно использовать отступы, поэтому, если ваша структура HTML усложняется, ваш код будет выглядеть ужасно (особенно таблицы). Иногда я даже не знаю, на каком я уровне в

table
  thead
    tr
      td
        a
          img
    tr
      td
  tbody
    tr
      td

недавно я переключился на EJS, и я доволен этим до сих пор. Он очень близок к чистому HTML и использует тот же синтаксис, что и движок шаблонов frontend, который я использую (шаблон подчеркивания). Надо сказать, что с EJS все проще. Мне не нужно делать все преобразования при получении HTML-шаблонов от моего друга-дизайнера. Все, что мне нужно сделать, это заменить динамические части переменными, переданными из ExpressJS. Вещи, которые сводят меня с ума при использовании Джейд являются решается в EJS

<div class="<%= isAdmin? 'admin': '' %> user"></div>

и я могу знать, что это такое с EJS

<a href="/user/<%= user.id %>"><%= user.name %></a>

если вы пропустите короткий синтаксис Jade (как и я), вы можете объединить Zen-кодирование и EJS, которые могут помочь вам ускорить прогресс в целом. О производительности, я не вижу никаких различий

однако EJS не так мощен, как Jade, у него нет блоков по умолчанию (этот парень реализовал функцию блока для EJS https://github.com/RandomEtc/ejs-locals)

таким образом, это полностью зависит от вас, чтобы выбрать то, что делает вас удобным. Но если вы собираетесь использовать другой шаблонный движок для интерфейса, как я, лучше, если вы используете то же самое для обеих сторон

Обновление 16 Декабря 2013: Недавно я переключился с EJS на Swig (который имеет аналогичную концепцию, как у Jinja2 в мире Python). Основная причина-отсутствие блока в EJS даже с помощью ejs-locals. Swig также использует простой HTML для шаблонов и множество интересных функций, которые должен иметь механизм шаблонов, например фильтры и теги, которые EJS не имеет

Я бы не сказал, что один лучше другого. Они разные, это точно, но "лучше" - довольно относительный термин.

Я предпочитаю EJS, потому что я думаю, что HTML не так уж плохо, плюс это позволяет мне работать с другими без необходимости изучать Джейд.

тем не менее, Джейд довольно чистый и делает для некоторого аккуратного кода в ваших представлениях.

выберите все, что вы чувствуете себя более комфортно.

Comments

    Ничего не найдено.