2012-01-10 40 views
25

Tôi đang học backbone.js cho một ứng dụng Rails 3 tôi đang làm việc. Backbone sử dụng underscore, tôi tin rằng, có một công cụ tạo mẫu riêng được xây dựng.Ưu điểm/nhược điểm của việc sử dụng bộ ria mép với Backbone.js là gì?

Tôi đã đọc những điều tốt về bộ ria mép nhưng tôi tự hỏi liệu tôi có nên cân nhắc sử dụng nó thay vì công cụ tạo sẵn của gạch dưới không?

Suy nghĩ của bạn là gì?

Cảm ơn

Trả lời

32

Tôi đang nửa chừng thông qua ứng dụng xương sống cấp doanh nghiệp đầu tiên của mình. Tôi hiện đang sử dụng dấu gạch dưới được xây dựng trong các mẫu bởi vì khi tôi bắt đầu theo cách tôi đã học được với dấu gạch dưới .. Tôi không nhất thiết phải có bất kỳ vấn đề với họ. Tất cả các giải pháp tạo khuôn mẫu khá thẳng về phía trước.

Tôi đã xem xét một vài giải pháp khác và đang dự tính chuyển đổi, nhưng chỉ vì tôi nghĩ rằng một số giải pháp khác trông sạch hơn. Ngoài ra một số giải pháp có một chút chức năng hơn.

Tôi thích bộ ria mép vì cú pháp ngắn hơn của nó. Trông sạch hơn. Nhưng nếu tôi chuyển đổi, tôi nghĩ tôi sẽ đi với Handlebars.js.

Tay lái có cùng cú pháp ngắn, cộng với một tấn các tính năng khác như phương pháp trợ giúp tùy chỉnh và đặt bối cảnh đối tượng bên trong mẫu của bạn. Kiểm tra nó ra here. Nếu tôi đã biết về tay lái ở đầu dự án của tôi, tôi chắc chắn đã nhảy vào nó chắc chắn rồi.

Tôi sẽ không lo lắng nhiều về việc thêm phụ thuộc khác như những người khác đã đề cập. Các ứng dụng xương sống được thực hiện ngay sẽ chạy nhanh như chớp. : D

Nếu bạn có bất kỳ câu hỏi nào khác cho tôi biết. Tôi đã thực sự thưởng thức xương sống vì vậy tôi đang cố gắng xem các bài đăng được gắn thẻ. Nhưng nghiêm túc. Tay lái trông hợp pháp.

EDIT:

Tôi cũng có nghĩa là để thêm rằng các tài liệu cho tay lái trông cách hơn legit hơn dấu gạch ...

+1

+1 cho nhận xét về tài liệu, tài liệu nhấn mạnh thấp hơn nhiều công cụ khác. – Sander

+3

+1 để đề cập đến 'Handlebars.js'. Tôi chắc chắn sẽ kiểm tra điều đó! BTW, có bất kỳ lập trình viên khác ra khỏi đó muốn phát triển một bộ ria mép tay lái bây giờ? – cbmeeks

+0

Xin cảm ơn một lần nữa. Bạn không chỉ có câu trả lời hay, nhưng bạn đã chỉ cho tôi một giải pháp thay thế mà tôi chưa từng nghe đến. – cbmeeks

18

Điều lớn nhất tôi có thể nghĩ là bạn đang thêm một thư viện khác để làm điều gì đó mà người phụ thuộc của bạn đã làm. Nếu cú ​​pháp là mối quan tâm lớn nhất của bạn, đoạn mã sau sẽ cho biết gạch dưới để sử dụng cú pháp tương tự.

_.templateSettings = { 
    evaluate : /\{\[([\s\S]+?)\]\}/g, 
    interpolate : /\{\{([\s\S]+?)\}\}/g 
}; 
+0

không có sự khác biệt lớn nào khác giữa hai động cơ? như cấu trúc khôn ngoan hoặc thậm chí chức năng như 1 chỉ có thể làm biến trong văn bản, trong khi các hỗ trợ khác looping hoặc lồng nhau mẫu hoặc bất cứ điều gì? – Sander

+3

Sự khác biệt chính mà tôi biết là Mustache sử dụng cú pháp độc lập ngôn ngữ và đã triển khai bằng nhiều ngôn ngữ để bạn có thể sử dụng các mẫu trong giao diện người dùng và mặt sau. – JaredMcAteer

+2

Một sự khác biệt khác là bộ ria mép ít logic hơn, đòi hỏi phải có trình bày và mã riêng biệt chặt chẽ hơn. – wprl

3

Câu hỏi đặt ra yêu cầu Rails, nhưng không được gắn thẻ như vậy; do đó, một con là xung đột với các ngôn ngữ sử dụng cú pháp giống như ria mép như các mẫu của django.

Nếu mẫu django phân tích cú pháp một khối trước tiên, nó sẽ cố gắng điền vào các khối {{ }} trước khi viết JS.

Tôi đang sử dụng thẻ mẫu django verbatim bỏ qua {{}} để giải quyết vấn đề nhưng bây giờ tôi muốn sử dụng cú pháp mặc định <%=%> để tôi không phải thoát khỏi các khối này được viết bằng công cụ mẫu django.

Các vấn đề liên quan