Jade so với EJS, ưu và nhược điểm của mỗi loại và mỗi mục đích được thiết kế cho mục đích gì?

Có bất kỳ công cụ mẫu tương thích nhanh khác là tốt và tại sao?

Bạn đang xem: Ejs là gì

Tôi đã sử dụng Jade trước đây. Điều hay ho của Jade là bạn có cú pháp ngắn hơn có nghĩa là bạn có thể gõ nhanh hơn. Các blocktrong Jade là khá mạnh mẽ mà có thể giúp tôi rất nhiều khi giao dịch với mã HTML phức tạp.

Mặt khác, thật khó để thực hiện một số thứ đơn giản trong Jade, điều này giống như thêm các lớp vào DIV dựa trên điều kiện if đơn giản. Tôi cần phải đặt một cái gì đó như thế này

– if (isAdmin) div.admin.user- else div.userJade cũng không phân biệt giữa các thẻ và các biến làm cho mã rất khó hiểu (ít nhất là đối với tôi)

a(href=”/user/” + user.id)= user.nameJade cũng không thân thiện với nhà thiết kế. Những người bạn thiết kế của tôi thường cho tôi HTML và CSS (Họ đã chuyển sang LESS gần đây nhưng vẫn muốn sử dụng HTML) và vì lý do đó nếu tôi sử dụng Jade, tôi cần chuyển đổi HTML sang Jade. Ngoài ra trong Jade, chúng tôi cần sử dụng các vết lõm, vì vậy nếu cấu trúc HTML của bạn trở nên phức tạp, mã của bạn sẽ trông thật kinh khủng (đặc biệt là các bảng). Đôi khi, tôi thậm chí không biết mình đang ở cấp độ nào

table thead tr td a img tr td tbody tr tdGần đây, tôi đã chuyển sang EJS và tôi hài lòng với nó cho đến nay. Nó rất gần với HTML thuần túy và sử dụng cú pháp giống như của công cụ mẫu frontend mà tôi đang sử dụng (mẫu gạch dưới).

Xem thêm: Slash Là Gì – Nghĩa Của Từ Slash Trong Tiếng Việt

Xem thêm: Rescue Là Gì – Nghĩa Của Từ Rescue

Tôi phải nói rằng mọi thứ đều dễ dàng hơn với EJS. Tôi không phải thực hiện tất cả các chuyển đổi khi nhận các mẫu HTML từ người bạn thiết kế của mình. Tất cả những gì tôi phải làm là thay thế các phần động bằng các biến được truyền từ ExpressJS. Những thứ khiến tôi phát điên khi sử dụng Jade được giải quyết trong EJS

div class=” user”>div>Và tôi có thể biết những gì với EJS

a href=”/user/”> user.name %>a>Nếu bạn bỏ lỡ cú pháp ngắn của Jade (như tôi), bạn có thể kết hợp Zen-Coding và EJS có thể giúp bạn tăng tốc tiến độ nói chung. Về hiệu suất, tôi không thấy bất kỳ sự khác biệt

Tuy nhiên, EJS không mạnh bằng Jade, nó không có khối theo mặc định (anh chàng này đã triển khai tính năng chặn cho EJS https://github.com/RandomEtc/ejs-locals )

Vì vậy, nó hoàn toàn phụ thuộc vào bạn để chọn bất cứ điều gì làm cho bạn thoải mái. Nhưng nếu bạn định sử dụng một công cụ mẫu khác cho frontend như tôi, sẽ tốt hơn nếu bạn sử dụng cùng một thứ cho cả hai bên

Cập nhật ngày 16 tháng 12 năm 2013: Gần đây, tôi đã chuyển từ EJS sang Swig (có khái niệm tương tự như Jinja2 trong thế giới Python). Lý do chính là thiếu khối trong EJS ngay cả với sự trợ giúp của ejs-locals. Swig cũng đang sử dụng HTML đơn giản cho các mẫu và rất nhiều tính năng thú vị mà công cụ mẫu nên có ví dụ như các bộ lọc và thẻ mà EJS không có

Chuyên mục: Hỏi Đáp