我正在学习 Rails,我已经看过这些模板引擎。我对他们没有经验(只有erb)。
但是作为一个初学者,我真的很困惑。你建议哪一个,为什么?Erb、Haml 还是 Slim?请说出您偏爱其中一个的原因。如果您有任何其他建议,请告诉我们。
编辑:我不是在这里寻找赢家。我只是想听听你对它们的看法,它们的语法、执行速度等等。
我正在学习 Rails,我已经看过这些模板引擎。我对他们没有经验(只有erb)。
但是作为一个初学者,我真的很困惑。你建议哪一个,为什么?Erb、Haml 还是 Slim?请说出您偏爱其中一个的原因。如果您有任何其他建议,请告诉我们。
编辑:我不是在这里寻找赢家。我只是想听听你对它们的看法,它们的语法、执行速度等等。
使用 slim 优于 haml 的两大优势:
Slim 目前比 haml 快 8 倍。
Slim 支持 HTTP 流,而 HAML 不支持。
Slim 有更自然的语法:a href="foo.html"
ERB 很好,主要是如果您有一个可以处理纯 HTML 并且不知道 haml 或 slim 的网页设计师。这样他就可以编写 HTML,并且您可以使用适当的标签嵌入 ruby 逻辑。
如果您同时使用 HTML 和 ruby 逻辑,或者您的设计师准备学习新的东西(例如 HAML),我会选择 HAML。它对 ruby 更加友好,比 ERB 减少了更多的字符数,并且更具可读性。
例如(取自HAML 官方网站):
在 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)之间没有明确的赢家。
在我的脑海中,这就是我想出的
再培训局:
优点
缺点
HAML
优点
缺点
对我来说,问题归结为您宁愿放在%
每个标签|
之前还是每个新文本块之前?
瘦:
tag(attr= "value")
| text
哈姆尔:
%tag{attr: "value"}
text
还有一件事要注意:haml 假定新行之间有一个空格(删除 haml 中的空格),而 slim 假定没有空格(在此处和此处在 Slim 中添加空格)
https://github.com/scalp42/hamlerbslim - 是一个独立的基准测试,显示 Slim 和 Erb 在性能方面是赢家(slim 也会减少 HTML 输出大小。)
我个人的看法是,总体而言,Slim 和 Haml 将在维护方面为您节省时间(== 金钱),前提是您有 Haml/Slim 精明的人来照顾您的意见。
如果你没有这些人,Erb 绝对是要走的路,因为尽管世界上最好的意愿,有很多非常便宜的人可以使用 HTML/Erb,但找到 Haml/Slim 一个完整的神秘。
最好的情况是,培训这些人使用 Slim 或至少让他们接触到它,并保留“得到它”的人的数量。