2012-02-23 24 views

Trả lời

11

Knockout là mẫu MVVM hoạt động với ViewModel javascript. Lý do này hoạt động tốt với MVC là việc tuần tự hóa và từ các mô hình javascript trong JSON rất đơn giản.

Ngoài ra, nó sẽ được đưa vào MVC4. Dưới đây là một đoạn video bằng cách tác giả Knockout về cách sử dụng nó cho các ứng dụng trang duy nhất trong MVC4 (với tính năng Web API mới của Microsoft):

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159

Nhưng những lợi ích thực sự MVVM cho phép bạn phát triển giàu UI của với rất ít mã hóa (nếu bạn đã quen thuộc với Silverlight hoặc WPF MVVM bạn sẽ biết chỉ là những gì tôi có ý nghĩa).

Cho một ViewModel của:

var myViewModel = { myValue: 'some text' }; 

Bạn không cần phải ràng buộc

$('#textBox').change(function() { myViewModel.myValue = $(this).val(); }) 

và ngược lại của

$('#textBox').val(myViewModel.myValue) 

khắp nơi, hoặc xử lý mã đặc biệt của tính thuộc tính trong chế độ xem của bạn trong Knockout. Bạn có thể làm tất cả trong một thời trang hướng đối tượng rất đẹp.

<input type="text" data-bind="value: myValue" /> 

Và tất cả các sự kiện đều được kết nối.

+0

Cảm ơn rất nhiều Paul trả lời nhắc nhở. Có tôi biết MVVM trong WPF nhưng tôi vẫn không thể tìm thấy bất kỳ lợi thế cụ thể trong ứng dụng MVC, giả sử tôi có 10 thuộc tính trong mô hình của tôi và bây giờ tôi phải tạo ra 10 thuộc tính giống nhau trong xem Model cũng để ràng buộc dữ liệu. Vậy tại sao tôi làm thêm mã? –

+0

Thay đổi ngay lập tức trong giao diện người dùng khi dữ liệu thay đổi. Nếu bạn không cần cập nhật "thích-live", thì bạn không cần loại trực tiếp – soniiic

+0

ok. vì vậy nó có nghĩa là nếu một số thay đổi vào dữ liệu của tôi thì UI sẽ tự động cập nhật các giá trị mà không cần bất kỳ yêu cầu nào đến máy chủ? –

2

Các lợi ích hơn là cấu trúc hơn, linh hoạt client-side mã javascript. Bạn có thể phân vùng giao diện người dùng tốt hơn và có thể đi xa đến mức bạn kết thúc với "a-single-page-website" ... chỉ thực hiện yêu cầu json (Nếu bạn muốn) có nghĩa là các chuyến đi khứ hồi của máy chủ ít hơn , vv ...

Và đối với tôi suy nghĩ thực sự mát mẻ được các ràng buộc thông qua quan sát ...

http://knockoutjs.com/documentation/observables.html

Ngoài ra kiểm tra này ra: MVC + Knockoutjs = khách hàng bên MVVM hạnh phúc http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2378

0

Ưu điểm là rất nhiều, vài tính năng nổi bật được tô sáng bên dưới:

  • khả thi để kết nối bất cứ lúc nào với các yếu tố giao diện người dùng trong mô hình dữ liệu.
  • Tạo các mô hình dữ liệu phức tạp và năng động một cách dễ dàng.
  • Hỗ trợ ràng buộc dữ liệu trong thao tác dữ liệu được lưu trữ, phản ánh dữ liệu đó vào Giao diện người dùng và cập nhật giao diện người dùng bằng các thay đổi phụ trợ thông thường nếu có.
  • Hỗ trợ mô hình lập trình hướng sự kiện và cung cấp tùy chỉnh 100%.
  • Hỗ trợ IE, Firefox, Safari, Bing, Chrome và nhiều luồng chính khác trình duyệt.
  • Giúp tránh việc làm đầy cuộc đối thoại HTTP với logic trình bày và bản trình bày đánh dấu trên máy chủ.
  • Đảm bảo áp dụng quy tắc kinh doanh, bảo mật dữ liệu và kiểm soát nhiều hơn trên trang web .
  • Nó cũng cung cấp tính toàn vẹn tham chiếu và nhiều xác thực các tính năng liên quan đến quy trình làm việc để bảo mật bổ sung.
  • Knockoutj cung cấp khả năng mở rộng vượt trội. Nó có nhiều điểm mở rộng và tiện ích để xây dựng một ứng dụng.

Bạn có thể đọc thêm ở đây từ bài viết của chúng tôi https://cynere.com/advantages-of-knockoutjs

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