我正在学习Rails,我已经看到了这些模板引擎。我对他们没有经验(只有 erb)。
但是作为初学者,我真的很困惑。你建议哪一个,为什么? Erb、Haml 还是 Slim?请说出您偏爱其中一个的原因。如果您有任何其他建议,请告诉我们。
编辑: 我不是在这里寻找赢家。我只想听听你对它们的看法,它们的语法、执行速度等等。
使用 slim 优于 haml 的两大优势:
Slim 目前比 haml 快八倍左右
Slim 支持 HTTP 流,而 HAML 不支持。
Slim 有更自然的语法:
a href="foo.html"
ERB 很好,主要是如果你有一个网页设计师可以在纯 HTML 上工作并且不知道 haml 或 slim。通过这种方式,他们可以编写 HTML,并且您可以使用适当的标签嵌入 ruby 逻辑。
如果你同时使用 HTML 和 ruby 逻辑,或者你的设计师准备学习新的东西(比如 HAML),我会选择 HAML。与 ERB 相比,它对 ruby 更友好,减少了很多字符数并且更具可读性。
例如(取自官方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)。
这就是我想到的
ERB:
优点
缺点
火腿
优点
缺点
https://github.com/scalp42/hamlerbslim - 是一个独立的基准测试,显示 Slim 和 Erb 是赢家,性能明智(slim 也倾向于减少 HTML 输出大小。)
我个人的看法是,总的来说,Slim 和 Haml 会在维护方面为您节省时间(==金钱),前提是您有 Haml/Slim 精明的人来照顾您的意见。
如果你没有这些人,Erb 绝对是你的选择,因为尽管世界上有最好的意愿,但有很多非常便宜的人可以使用 HTML/Erb,但是找到 Haml/Slim a完全神秘。
最重要的是,培训这些人使用 Slim 或至少让他们接触它,并保留“了解它”的人数。