Это самоуверенная статья о ERB и HAML с Rails. Давайте сравним друг друга и выберем победителя.
Вариант использования
В мире Ruby-on-Rails они известны как языки шаблонов. В концепции MVC они представляют «Представление». Оба здесь для вывода HTML.
Пример
Примеры стоят тысячи слов, поэтому вот два примера: один с ERB, другой с HAML. Оба строго эквивалентны. Я пытался использовать различные концепции, чтобы выделить различные проблемы: создание переменных, запуск кода Ruby, встроенный стиль, условие, цикл и т. д.
Файл шаблона ERB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<% v = run_some_ruby_code %>
id="main" style="margin-left: 0">
class="left column">
Welcome to the library
<% books.each_with_index do |book, indx| %>
<% if indx > 0 %>
<%= book.title %>
<% end %>
<% end %>
class="right column">
<%= render "shared/sidebar" %>
Эквивалентен этому файлу шаблона HAML:
1
2
3
4
5
6
7
8
9
- v = run_some_ruby_code
#main{style: "margin-left: 0"}
.left.column
%h2 Welcome to the library
- books.each_with_index do |book, indx|
- if indx > 0
%p= book.title
.right.column
= render "shared/sidebar"
Еврорадио
- Обычный HTML по-прежнему действителен, поэтому копирование/вставка с других веб-сайтов не является проблемой.
- Отступ по своему усмотрению: это может рассматриваться как преимущество: если вы хотите сделать отступ так, как хотите. Это также можно рассматривать как проблему: неправильные отступы по-прежнему работают…
- Стандарт со стеком Rails по умолчанию: это означает большую стандартизацию: лучшая поддержка IDE, устаревшие приложения могут использовать его чаще и минимальный входной барьер.
ГАМЛЕТ
- HAML гораздо менее многословен — это основной несправедливое преимущество ХАМЛ.
- HAML должен иметь правильный отступ. Иногда отступы не так интуитивны, как хотелось бы. Так что это не так прохладный.
- HAML также не очень интуитивен для крайних случаев (теги JavaScript, встроенный CSS…). В этом случае вам придется использовать внешний онлайн-инструмент.
- Добавлен как драгоценный камень, т.е. не включен в приложение Rails по умолчанию.
- Известен как медленнее, чем ERB, но я не заметил никакой практической разницы.
И победителем становится
Еврорадио.
Я использовал оба варианта и должен сказать, что у HAML есть одно очень большое преимущество: гораздо меньше многословия. Это очень удобно для больших файлов шаблонов. Но большие файлы шаблонов встречаются в приложении не так часто, если правильно разрезать их на небольшие части — частичные или view_comComponents.
Итак, теперь одно большое преимущество HAML не перевешивает сумму его недостатков: сложность копирования/вставки из примеров и особенно сложные угловые случаи.
2024-02-16 10:11:23
1708123544
#RubyonRails #ERB #против #HAML #Бутрейлы