Jade和EJS,它们各自的优缺点是什么,各自的设计目的是什么?
Jade和EJS,它们各自的优缺点是什么,各自的设计目的是什么?
我以前用过玉.Jade的优点是,你的语法更短,这意味着你可以更快地打字.Jade中的block
非常强大,在处理复杂的HTML代码时,它可以帮助我很多.
另一方面,在Jade中很难做一些简单的事情,比如根据简单的if条件向DIV中添加类.我需要这样的东西
- if (isAdmin)
div.admin.user
- else
div.user
Jade也没有区分标签和变量,这使得代码非常混乱(至少对我来说)
a(href='/user/' + user.id)= user.name
翡翠也不利于设计师.我的设计师朋友经常给我HTML和CSS(他们最近改用了HTML,但仍然想使用HTML),因此,如果我使用Jade,我需要将HTML转换为Jade.同样在Jade中,我们需要使用缩进,所以如果HTML struct 变得复杂,代码看起来会很糟糕(尤其是表).有时候,我甚至不知道自己处于什么水平
table
thead
tr
td
a
img
tr
td
tbody
tr
td
最近,我换了EJS,到目前为止我很满意.它非常接近纯HTML,使用与我使用的前端模板引擎(下划线模板)相同的语法.我必须说,有了EJS,一切都变得容易了.当我从我的设计师朋友那里收到HTML模板时,我不必做所有的转换.我所要做的就是用ExpressJS传递的变量替换动态部分.在EJS中解决了使用Jade时让我发疯的问题
<div class="<%= isAdmin? 'admin': '' %> user"></div>
我知道EJS是什么
<a href="/user/<%= user.id %>"><%= user.name %></a>
如果你错过了Jade(像我一样)的简短语法,你可以结合Zen编码和EJS,这可以帮助你总体上加快进度.关于表现,我看不出有什么不同
然而,EJS没有Jade强大,默认情况下它没有块(这家伙为EJS https://github.com/RandomEtc/ejs-locals实现了块功能)
所以, Select 让你感到舒服的东西完全取决于你.但是,如果你打算像我一样在前端使用另一个模板引擎,那么最好在双方使用相同的东西
2013年12月16日更新: