30/09/2018, 17:30

[Node.js - Template Engine] Jade vs Handlebars

Chào mọi người, không biết có ai đã từng làm qua Node.js cho em thắc mắc vấn đề này. Trong quá trình tìm hiểu Node.js, tới phần Template Engine thì tài liệu có nói đến JadeHandlebars. Theo quan điểm của em thì sử dụng Jade hoặc Handlebars so với HTML hơi khó kiểm soát khi mà mã nguồn phần View hơi dài.

Ai đã từng làm qua cho em xin ý kiến

Nguyễn Phú viết 19:33 ngày 30/09/2018

Mình dùng Handlebars, nhưng mình nghĩ là Handlebars đều làm code gọn, dễ quản lý hơn HTML thuần. Vì khi dùng template engine này tức là mình phải “xé” nhỏ thành các components nhỏ.
Ex:

<div class="posts">
    {{#each posts}}
        {{> Post}}
    {{/each}}
</div>

<template name="Post">
    <div class="post">
        <div class="post-meta">
            {{author}} | {{createdAt}}
        </div>
        <div class="post-content">
            {{content}}
        </div>
        {{> socialBox}}
    </div>
</template>

<template name="socialBox">
    <div class="facebook"></div>
    <div class="twitter"></div>
</template>

Khi chia nhỏ thì dễ tìm lỗi, dễ chỉnh sửa hơn. Còn Jade thì mình không tìm hiểu nên cũng không có lời khuyên nào.

Võ Hoài Nam viết 19:36 ngày 30/09/2018

Mình cũng định dùng thử nó và kết hợp với AngularJS… Nó có khác gì so với Directive của AngularJS khi mà mình “xé” nó thành từng component

Nguyễn Phú viết 19:34 ngày 30/09/2018

Mình nghĩ là không khác nhau là mấy, cả 2 đều tạo ra các web component để dễ sử dụng lại. (reusable).
Nếu angular mình nghĩ không nên dùng Handlerbars.

Võ Hoài Nam viết 19:41 ngày 30/09/2018

Theo bạn thì ta có nên sử dụng template engine không? Hay là sử dụng một template engine khác khi kết hợp với AngularJS?

Nguyễn Phú viết 19:32 ngày 30/09/2018

Theo bạn thì ta có nên sử dụng template engine không? Hay là sử dụng một template engine khác khi kết hợp với AngularJS?

Thật sự thì mình không sử dụng AngularJS nên không rành lắm. Angular đã tích hợp sẵn rồi mà, nếu mình dùng template engine khác thì dễ bj conflict + không sử dụng được nhiều chức năng tích hợp của angular.

Võ Hoài Nam viết 19:46 ngày 30/09/2018

Mình nhớ là có thể override lại được {{ }} của AngularJS nên có thể không sao đâu

Nguyễn Tuấn viết 19:32 ngày 30/09/2018

Bạn muốn tích hợp view engine vào Angular thì đầu tiên bạn phải xác định mục đích của bạn là gì? Bạn cần tốc độ render nhanh hơn? Sờ cu rờ ti tốt hơn? Thì bạn hãy nghĩ đến chuyện tích hợp view engine. Bản thân Angular nó đã có view engine rồi. Ngoài 2 vấn đề fastest render và security thì chả có thằng điên nào tích hợp view engine vào Angular cả. Thân!

Bài liên quan
0