Jade versus EJS, apa pro dan kontra dari masing-masing dan untuk tujuan apa masing-masing dirancang?
Apakah ada mesin templat lain yang kompatibel dengan ekspres dan mengapa?
Jade versus EJS, apa pro dan kontra dari masing-masing dan untuk tujuan apa masing-masing dirancang?
Apakah ada mesin templat lain yang kompatibel dengan ekspres dan mengapa?
Jawaban:
Saya menggunakan Jade sebelumnya. Hal yang menyenangkan tentang Jade adalah Anda memiliki sintaks yang lebih pendek yang berarti Anda dapat mengetik lebih cepat. The block
di Jade cukup kuat yang dapat membantu saya banyak ketika berhadapan dengan kode HTML yang kompleks.
Di sisi lain, sulit untuk melakukan beberapa hal sederhana di Jade, seperti menambahkan kelas ke dalam DIV berdasarkan kondisi if yang sederhana. Saya perlu meletakkan sesuatu seperti ini
- if (isAdmin)
div.admin.user
- else
div.user
Jade juga tidak membedakan antara tag dan variabel yang membuat kode sangat membingungkan (setidaknya untuk saya)
a(href='/user/' + user.id)= user.name
Jade juga tidak ramah desainer. Teman-teman desainer saya sering memberi saya HTML dan CSS (Mereka beralih ke LESS baru-baru ini tetapi masih ingin menggunakan HTML), dan untuk alasan itu jika saya menggunakan Jade, saya perlu mengonversi HTML ke Jade. Juga di Jade, kita perlu menggunakan lekukan, jadi jika struktur HTML Anda menjadi rumit, kode Anda akan terlihat mengerikan (terutama tabel). Terkadang, saya bahkan tidak tahu level saya saat ini
table
thead
tr
td
a
img
tr
td
tbody
tr
td
Baru-baru ini, saya beralih ke EJS dan sejauh ini saya senang dengannya. Ini sangat dekat dengan HTML murni dan menggunakan sintaks yang sama dengan mesin template frontend yang saya gunakan (Template garis bawah). Saya harus mengatakan bahwa semuanya lebih mudah dengan EJS. Saya tidak perlu melakukan semua konversi saat menerima template HTML dari teman desainer saya. Yang harus saya lakukan adalah mengganti bagian dinamis dengan variabel yang diteruskan dari ExpressJS. Hal-hal yang membuat saya gila saat menggunakan Jade diselesaikan di EJS
<div class="<%= isAdmin? 'admin': '' %> user"></div>
Dan saya bisa tahu ada apa dengan EJS
<a href="/user/<%= user.id %>"><%= user.name %></a>
Jika Anda melewatkan sintaks singkat Jade (seperti saya), Anda dapat menggabungkan Zen-Coding dan EJS yang dapat membantu Anda mempercepat kemajuan secara umum. Tentang kinerja, saya tidak melihat perbedaan apa pun
Namun, EJS tidak sekuat Jade, ia tidak memiliki blok secara default (orang ini menerapkan fitur blok untuk EJS https://github.com/RandomEtc/ejs-locals )
Jadi, sepenuhnya tergantung pada Anda untuk memilih apa pun yang membuat Anda nyaman. Tetapi jika Anda akan menggunakan mesin template lain untuk frontend seperti saya, lebih baik jika Anda menggunakan hal yang sama untuk kedua sisi
Pembaruan 16 Desember 2013: Baru-baru ini, saya telah beralih dari EJS ke Swig (yang memiliki konsep serupa dengan Jinja2 di dunia Python). Alasan utamanya adalah tidak adanya blokir di EJS bahkan dengan bantuan ejs-locals
. Swig juga menggunakan HTML biasa untuk templat dan banyak fitur keren yang harus dimiliki mesin templat misalnya filter dan tag yang tidak dimiliki EJS.
Jade
satu atau dua tahun lalu. Mungkin sudah lebih baik sekarang. Namun menyesali poin pertama saya, tidak akan mudah untuk menyiasatinya
Saya tidak akan mengatakan bahwa yang satu lebih baik dari yang lain. Mereka berbeda, itu pasti, tetapi "lebih baik" adalah istilah yang relatif.
Saya lebih suka EJS karena menurut saya HTML tidak terlalu buruk, ditambah lagi memungkinkan saya untuk bekerja dengan orang lain tanpa mereka harus belajar Jade.
Namun, Jade cukup bersih dan membuat beberapa kode rapi dalam tampilan Anda.
Pilih apa pun yang Anda rasa lebih nyaman.