我正在学习Rails,并且已经看过这些模板引擎。我没有与他们的经验(只有erb)。
但是作为我的初学者,我真的很困惑。您建议哪一个,为什么?Erb,Haml还是Slim?请说出您偏爱一个的理由。如果您还有其他建议,请告诉我们。
编辑:我不是在这里寻找赢家。我只想听听您对它们的意见,它们的语法,执行速度等等。
我正在学习Rails,并且已经看过这些模板引擎。我没有与他们的经验(只有erb)。
但是作为我的初学者,我真的很困惑。您建议哪一个,为什么?Erb,Haml还是Slim?请说出您偏爱一个的理由。如果您还有其他建议,请告诉我们。
编辑:我不是在这里寻找赢家。我只想听听您对它们的意见,它们的语法,执行速度等等。
Answers:
如果您的网络设计师可以使用纯HTML并且不熟悉haml或slim,那么ERB很好。这样,他就可以编写HTML,并且您可以在红宝石逻辑中嵌入适当的标签。
如果您同时使用HTML和ruby逻辑,或者您的设计师已准备好学习新知识(例如HAML),我会推荐HAML。与ERB相比,它对红宝石更加友好,减少了字符数,并且可读性更高。
在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)没有确定的赢家。
a href="foo"
。
使用苗条而非haml的两个主要优点是:
Slim目前比haml快八倍。
Slim支持HTTP流,而HAML不支持。
Slim具有更自然的语法: a href="foo.html"
这是我想出的
ERB:
优点
缺点
HAML
优点
缺点
对我来说,问题是您想%
在每个标记|
之前还是在每个新文本块之前?
瘦:
tag(attr= "value")
| text
哈姆:
%tag{attr: "value"}
text
需要注意的另一件事:haml假定新行之间有一个空格(删除haml中的空格),而slim假定没有空间(在此处和此处 Slim中添加空格)
|
是每个%
标签的每个文本块。标签远远多于文字文本块。对于我来说,使用slim的一个小巧但语义上的胜利是,任何使用了<>
标签的原始html都带有显式|
。我更喜欢“一切都是苗条的,除非您明确地用|
”来代替它%
。”而不是“一切都是字面的,直到您用a 。使其成为汉姆。”
attr="value"
),而Haml看起来更像Ruby({key: "value"}
像Hash)。
https://github.com/scalp42/hamlerbslim-是一个独立的基准测试,在性能方面,Slim和Erb成为赢家(Slim也会减小HTML输出大小)。
我个人认为,总体而言,Slim和Haml将在维护方面为您节省时间(==金钱),只要您有Haml / Slim精明的人照顾您的意见。
如果您没有这些人,那么Erb绝对是正确的选择,因为尽管世界上有最好的意愿,但是仍然有很多非常便宜的人可以使用HTML / Erb,但是可以找到Haml / Slim神秘。
最重要的是,培训这些人使用Slim或至少让他们接触Slim,并保留“了解它”的人数。