Jade'e karşı EJS, her birinin artıları ve eksileri nelerdir ve her biri hangi amaçlar için tasarlanmıştır?
İyi olan başka ekspres uyumlu şablon motorları var mı ve neden?
Jade'e karşı EJS, her birinin artıları ve eksileri nelerdir ve her biri hangi amaçlar için tasarlanmıştır?
İyi olan başka ekspres uyumlu şablon motorları var mı ve neden?
Yanıtlar:
Daha önce Jade kullandım. Jade ile ilgili güzel olan şey, daha kısa bir söz dizimine sahip olmanız, bu da daha hızlı yazabileceğiniz anlamına gelir. block
Jade karmaşık HTML kodu ile uğraşırken bana çok yardımcı olabilir oldukça güçlüdür.
Öte yandan, Jade'de basit bir if koşuluna dayalı bir DIV'ye sınıflar eklemek gibi basit şeyler yapmak zordur. Bunun gibi bir şey koymam lazım
- if (isAdmin)
div.admin.user
- else
div.user
Jade ayrıca, kodu çok kafa karıştırıcı yapan etiketler ve değişkenler arasında ayrım yapmaz (en azından benim için)
a(href='/user/' + user.id)= user.name
Jade aynı zamanda tasarımcı dostu değil. Tasarımcı arkadaşlarım bana genellikle HTML ve CSS veriyor (Son zamanlarda LESS'e geçtiler ama yine de HTML kullanmak istiyorlar) ve bu nedenle Jade'i kullanırsam HTML'yi Jade'e dönüştürmem gerekiyor. Ayrıca Jade'de girintileri kullanmamız gerekiyor, bu yüzden HTML yapınız karmaşıklaşırsa, kodunuz korkunç görünecektir (özellikle tablolar). Bazen hangi seviyede olduğumu bile bilmiyorum
table
thead
tr
td
a
img
tr
td
tbody
tr
td
Son zamanlarda EJS'ye geçtim ve şu ana kadar memnunum. Saf HTML'ye çok yakın ve kullandığım ön uç şablon motoruyla aynı sözdizimini kullanıyor (Alt Çizgi şablonu). EJS ile her şeyin daha kolay olduğunu söylemeliyim. Tasarımcı arkadaşımdan HTML şablonları alırken tüm dönüşümü yapmak zorunda değilim. Tek yapmam gereken dinamik parçaları ExpressJS'den geçirilen değişkenlerle değiştirmek. Jade kullanırken beni çıldırtan şeyler EJS'de çözüldü
<div class="<%= isAdmin? 'admin': '' %> user"></div>
Ve EJS ile ne olduğunu anlayabiliyorum
<a href="/user/<%= user.id %>"><%= user.name %></a>
Jade'in kısa sözdizimini özlüyorsanız (benim gibi), genel olarak ilerlemeyi hızlandırmanıza yardımcı olabilecek Zen-Coding ve EJS'yi birleştirebilirsiniz. Performans hakkında herhangi bir fark görmüyorum
Ancak, EJS Jade kadar güçlü değildir, varsayılan olarak bloklara sahip değildir (bu adam EJS için bir blok özelliği uygulamıştır https://github.com/RandomEtc/ejs-locals )
Bu yüzden, sizi rahat ettiren şeyi seçmek tamamen size bağlıdır. Ama benim gibi ön uç için başka bir şablon motoru kullanacaksanız, her iki taraf için de aynı şeyi kullanmanız daha iyi
Güncelleme 16 Aralık 2013: Son zamanlarda, EJS'den Swig'e (Python dünyasındaki Jinja2 ile benzer bir konsepte sahip) geçtim. Bunun ana nedeni, EJS'nin yardımıyla bile blok eksikliğidir ejs-locals
. Swig ayrıca şablonlar için düz HTML ve bir şablon motorunun sahip olması gereken birçok harika özellik kullanıyor, örneğin EJS'nin sahip olmadığı filtreler ve etiketler
Jade
iki yıl önce denedim . Belki şimdi daha iyi hale geliyor. Ancak ilk noktamı yeniden değerlendirirsem, bunu aşmak kolay olmayacak
Birinin diğerinden daha iyi olduğunu söyleyemem. Kesinlikle farklılar, ama "daha iyi" oldukça göreceli bir terim.
EJS'yi tercih ediyorum çünkü HTML'nin çok kötü olmadığını düşünüyorum, ayrıca Jade'i öğrenmek zorunda kalmadan başkalarıyla çalışmamı sağlıyor.
Bununla birlikte, Jade oldukça temiz ve görüşlerinizde bazı düzgün kodlar oluşturuyor.
Kendinizi daha rahat hissediyorsanız seçin.