ジェイド対EJS、それぞれの長所と短所は何ですか?それぞれの目的はどのような目的のために設計されていますか?Node.jsテンプレート用のJadeとEJSの長所と短所は何ですか?
any other express-compatible template enginesがあり、その理由は何ですか?
ジェイド対EJS、それぞれの長所と短所は何ですか?それぞれの目的はどのような目的のために設計されていますか?Node.jsテンプレート用のJadeとEJSの長所と短所は何ですか?
any other express-compatible template enginesがあり、その理由は何ですか?
私はジェイドを以前使用しました。 Jadeの素晴らしい点は、構文を短くしてより速く入力できることです。 Jadeのblock
は非常に強力なので、複雑なHTMLコードを扱うときに私を助けてくれます。
一方、単純なif条件に基づいてDIVにクラスを追加するのと同じように、Jadeでは簡単なことをするのは難しいです。私は
a(href='/user/' + user.id)= user.name
ジェイドもないデザイナーである(少なくとも私にとっては)タグやコードは非常に混乱させるの変数を区別しません。また、この
- if (isAdmin)
div.admin.user
- else
div.user
翡翠のようなものを置く必要があります - フレンドリー。私のデザイナーの友人たちは、HTMLとCSSを提供しています(彼らは最近LESSに切り替えましたが、まだHTMLを使いたいと思っています)。そのため、Jadeを使うとHTMLをJadeに変換する必要があります。また、Jadeではインデントを使用する必要があります。そのため、HTML構造が複雑になると、コードがひどく見えます(特にテーブル)。時々、私は何レベルにいるのか分かりません
table
thead
tr
td
a
img
tr
td
tbody
tr
td
最近、私はEJSに切り替えました。私はこれまでこれまでに満足しています。これは純粋なHTMLに非常に近く、私が使用しているフロントエンドテンプレートエンジン(アンダースコアテンプレート)と同じ構文を使用します。 EJSではすべてが簡単だと言わなければならない。デザイナーの友人からHTMLテンプレートを受け取ったときに、すべての変換を行う必要はありません。私がしなければならないことは、動的部分をExpressJSから渡された変数に置き換えることだけです。ジェイドを使用しているとき、私はクレイジー作るものはEJS
<div class="<%= isAdmin? 'admin': '' %> user"></div>
で解決されていると私はあなたが(私のような)ジェイドの短い構文を逃した場合は、組み合わせることができますEJS
<a href="/user/<%= user.id %>"><%= user.name %></a>
と何が何であるかを知ることができますZen-CodingとEJSは、一般的な進歩をスピードアップするのに役立ちます。パフォーマンスについては、私はどんな違いが
しかし、EJSはジェイドほど強力ではありません、それはデフォルトでブロックを持っていません表示されていない(この男はEJS https://github.com/RandomEtc/ejs-localsためのブロック機能を実装)
だから、それあなたを快適にするものを選ぶことは、あなたに完全に依存しています。しかし、私のようにフロントエンドに別のテンプレートエンジンを使用する場合は、両側で同じものを使用する方が良いでしょう。
更新日2013年12月16日: 最近、EJSからSwig Pythonの世界ではJinja2のコンセプト)。主な理由は、ejs-locals
の助けを借りてEJSのブロックがないことです。 Swigは、テンプレートにはプレーンなHTMLを使用しています。テンプレートエンジンにはEJSにはないフィルタやタグなどのテンプレートエンジンがたくさんあります。
私はそれが他のものより優れているとは言いません。彼らは異なっていますが、それは確かですが、「より良い」とはかなり相対的な用語です。
私はHTMLがあまりにも悪くないと思うので、私はEJSを好むだけでなく、僕はJadeを学ばなくても他の人と仕事をすることができます。
しかし、翡翠はかなりきれいで、あなたの意見にはきちんとしたコードがあります。
あなたがもっと気持ちが良いものを選んでください。
あなたがどのレベルにいるのかわからないのは、jadeが1行に複数のタグを新たにサポートしているということです。 Jadeのドキュメントから、「スペースを節約するために、jadeはネストされたタグのインライン構文を提供しています.'a:img」は '
'と等価です。 –
私は1年か2年前に「翡翠」を試しました。多分今は良くなっています。しかし、私の最初のポイントを撤回し、それを回避することは簡単ではない –
[html2jade](http://html2jade.com/)見たことがありますか? – tjameson