1708118871
2024-02-16 10:11:23
これは、Rails を使用した ERB と HAML に関する独断的な記事です。 お互いを比較して勝者を決めましょう。
使用事例
Ruby-on-Rails の世界では、これらはテンプレート言語として知られています。 MVC の概念では、これらは「ビュー」を表します。 どちらも HTML を出力するためにここにあります。
例
例は百聞は一見に如かずなので、ここでは 2 つの例を示します。1 つは ERB を使用したもの、もう 1 つは 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"
ERB
- プレーン HTML は引き続き有効なので、他の Web サイトからのコピー/ペーストは問題ありません
- 好きなようにインデントできます: 利点と思われるかもしれません: 好きなようにインデントしたい場合。 問題ともみなされる可能性があります。不適切なインデントが依然として機能します…
- Rails のデフォルトスタックを標準とする : これは、さらなる標準化を意味します : より良い IDE サポート、従来のアプリでより多くの IDE が使用される可能性があり、参入障壁が最も低くなります
ハムレット
- HAML はそれほど冗長ではありません – これがメインです 不公平な優位性 HAMLの。
- HAML は正しくインデントされている必要があります。 インデントが必要以上に直感的でない場合があります。 だから、そうではありません それで いいね。
- また、HAML は特殊なケース (JavaScript タグ、インライン CSS など) ではあまり直感的ではありません。 この場合、外部のオンライン ツールを使用する必要があります。
- gem として追加されました。つまり、デフォルトの Rails アプリケーションには含まれていませんでした。
- ERB よりも遅いことで知られていますが、実際的な違いは感じられませんでした。
そして勝者は
ERB。
私は両方を使用したことがありますが、HAML には非常に大きな利点が 1 つあると言わざるを得ません。それは、冗長性がはるかに少ないことです。 これは、大きなテンプレート ファイルの場合に非常に便利です。 ただし、大きなテンプレート ファイルを適切に小さな部分 (部分または view_components) に分割すれば、アプリケーション内で大きなテンプレート ファイルが頻繁に使用されることはありません。
したがって、現在、HAML の大きな利点は、その欠点の合計を上回るものではありません。例からコピー/ペーストするのが難しく、特に注意が必要な特殊なケースです。
#RubyonRails #ERB #と #HAML #ブーツレール