我正在学习Rails,我看过这些模板引擎。我对他们没有经验(只有erb)。
但由于我是初学者,我真的很困惑。你建议哪一个?为什么? Erb,Haml还是Slim?请告诉你理由偏爱其他人。如果您有任何其他建议,请告诉我们。
编辑: 我不是在寻找胜利者。我只是想听听你对他们的看法,他们的语法,执行速度等等。
答案 0 :(得分:80)
使用超薄haml的两大优势:
Slim目前比haml快8倍。
Slim支持HTTP流,而HAML则不支持。
Slim的语法更自然:a href="foo.html"
答案 1 :(得分:63)
ERB很好,主要是如果你有一个网页设计师,它将使用纯HTML,并且不知道haml或slim。通过这种方式,他可以编写HTML,并且可以使用正确的标记嵌入ruby逻辑。
如果你同时处理HTML和ruby逻辑,或者你的设计师已经准备好学习新的东西(比如HAML),我会选择HAML。它比红宝石更友好,减少了字数,并且比ERB更具可读性。
例如(摘自官方HAML site):
在ERB中,您的视图将如下所示:
<div id="profile">
<div class="left column">
<div id="date"><%= print_date %></div>
<div id="address"><%= current_user.address %></div>
</div>
<div class="right column">
<div id="email"><%= current_user.email %></div>
<div id="bio"><%= current_user.bio %></div>
</div>
</div>
在HAML中,它看起来像这样:
#profile
.left.column
#date= print_date
#address= current_user.address
.right.column
#email= current_user.email
#bio= current_user.bio
更干净!
至于HAML和SLIM之间的区别 - 我从未真正使用过SLIM,但我认为这是一个品味问题 - 看看这两种语法并决定哪种看起来更好看。我认为这两者之间没有明确的赢家(HAML / SLIM)。
答案 2 :(得分:32)
这是我的想法
<强> ERB 强>:
赞成
缺点
<强> HAML 强>
赞成
缺点
答案 3 :(得分:17)
我的问题归结为您是希望在每个新标记之前放置%
还是在每个新文本块之前放置|
?
超薄:
tag(attr= "value")
| text
Haml的:
%tag{attr: "value"}
text
需要注意的另一件事是:haml假定新行(remove whitespace in haml)之间有空格,而slim假定没有空格(在Slim here和here中添加空格)
答案 4 :(得分:15)
https://github.com/scalp42/hamlerbslim - 是一个独立的基准测试,将Slim和Erb显示为获胜者,性能明智(苗条也倾向于减少HTML输出大小。)
我个人认为,总的来说,Slim和Haml会在维护方面为您节省时间(==金钱),让您有Haml / Slim精明的人照顾您的观点。
如果你没有这些人,Erb肯定是要走的路,因为尽管世界上有最好的意愿,但是有很多非常便宜的人可以使用HTML / Erb,但是找到了Haml /修剪一个完整的谜。
最重要的是,培训这些人使用Slim或者至少让他们接触它,并保留“得到它”的人数。