Bực bội câu hỏi này bây giờ đã hơn một năm và tình hình đã không thực sự thay đổi. JsViews và JsRender mạnh hơn rất nhiều so với jQuery-tmpl, nhưng chúng cũng không còn phụ thuộc vào jQuery và thư viện lớn hơn nhiều theo quyền riêng của chúng.
Các mốc thời gian cho dự án này dường như là một mớ hỗn độn: jQuery-tmpl là phiên bản beta và bên thứ 3, Microsoft contributed it như một phần của official jQuery project, sau đó jQuery dropped it vì họ cảm thấy các plug-ins chính thức là diluting what jQuery was about. Tại thời điểm hỗ trợ đầy đủ templating sẽ được trong 1,5, nhưng sau đó nó đã không được. Có một jQueryUI project page, nhưng có vẻ khá chết, và không có gì về các mẫu trong bất kỳ bản phát hành jQuery tiếp theo nào.
Về cơ bản, bất kỳ thư viện mẫu nào bạn muốn sử dụng, nó không liên quan gì đến bất kỳ bản phát hành chính thức nào của jQuery hoặc Microsoft bây giờ.
Thành thật mà nói, tôi nghĩ rằng JsViews đã trở thành một khung MVVM đầy đủ chứ không phải chỉ là một plugplating. Nó trông khá ấn tượng, nhưng nó không phải là một plugin jQuery đơn giản hoặc nhẹ hoặc cập nhật jQuery-tmpl.
Nếu bạn muốn 'tương lai chứng minh' phát triển mẫu có vẻ như là hai mô hình rộng sử dụng mới nổi:
Sử dụng data-*
thuộc tính. Ví dụ: Knockout (sử dụng thuộc tính data-bind
chứa biểu thức) và jQuery loadTemplate. Khá đơn giản để triển khai nhưng giới hạn đối với các ràng buộc dữ liệu có thể được biểu diễn dưới dạng thuộc tính của thẻ.
Sử dụng 'bộ ria mép' - {
dấu ngoặc vuông. Các ví dụ bao gồm JsRender, jQuery-tmpl và Mustache. Chúng mạnh mẽ hơn khi bạn có thể liên kết dữ liệu với bất kỳ văn bản nào trong mẫu. Đây không phải là phù hợp với nhau - JsRender sử dụng {{:
, jQuery-tmpl sử dụng ${
, Mustache sử dụng {{
v.v., nhưng chúng cũng có cú pháp khác nhau cho vòng lặp, ifs, v.v.
Trong tương lai tôi nghĩ rằng một trong số đó có thể trở thành tiêu chuẩn, nhưng trong khi chờ đợi, bạn không thể chứng minh tương lai vì hiện tại không có một phương pháp ổn định nào.
Cuối cùng cũng có tùy chọn underscore.js: mặc định của họ là sử dụng cú pháp giống như .Net (nghĩa là <%=
) nhưng điều đó gây nhầm lẫn cho nhà phát triển, IDE và trình biên dịch khi sử dụng .Net, về cơ bản làm cho mặc định không tương thích .Net developers. Bạn có thể thay đổi nó để sử dụng bất kỳ cú pháp nào bạn muốn bằng cách cung cấp một Regex thay thế. Đó có lẽ là 'bằng chứng trong tương lai' nhất (không thay đổi cú pháp của bạn, thay đổi trình phân tích mẫu của bạn) mà còn hạn chế bạn về những gì bạn có thể sử dụng và làm cho các công cụ phong phú hỗ trợ khó khăn.
Tôi nghĩ rằng với loại quyết định này, nó phụ thuộc vào ngữ cảnh. Nếu bạn chỉ muốn sử dụng một vài mẫu trong một dự án hiện có, tôi nghĩ tùy chọn tốt nhất là sử dụng jQuery-tmpl nhưng có kế hoạch duy trì nó trong nhà với các phiên bản jQuery mới. Nếu bạn muốn xây dựng một ứng dụng mới từ đầu sử dụng một MVVM Javascript thì tôi sẽ đánh giá các khung công tác hoàn chỉnh hơn, nhưng có kế hoạch gắn bó với bất cứ thứ gì bạn chọn.