Home » Ruby-on-Rails ERB против HAML | Бутрейлы

Ruby-on-Rails ERB против HAML | Бутрейлы

Это самоуверенная статья о 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 #Бутрейлы

Read more:  Раскаленные «Рейнджерс» представляют собой серьезное испытание для «Брюинз» в подготовке к плей-офф

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.