KnockoutJS - Khung MVVM

Model-View-ViewModel (MVVM)là một mẫu thiết kế kiến ​​trúc để phát triển các ứng dụng phần mềm. MVVM được phát triển bởi Microsoft Architect John Gossman vào năm 2005. Mẫu này có nguồn gốc từ mẫu Model-View-Controller (MVC). Ưu điểm của MVVM là nó tách giao diện người dùng đồ họa của lớp ứng dụng khỏi logic nghiệp vụ. MVVM chịu trách nhiệm xử lý dữ liệu từ mô hình bên dưới theo cách mà nó được đại diện và quản lý rất dễ dàng. ViewModel trong MVVM đại diện cho một phiên bản trừu tượng của trạng thái và hành động của View.

Các lớp xem không biết rằng các lớp Model và ViewModel tồn tại, cũng như Model và ViewModel không biết rằng View tồn tại. Model cũng không biết rằng ViewModel và View tồn tại.

Ngành kiến ​​trúc

Lượt xem

Chế độ xem là Giao diện người dùng đồ họa được tạo bằng ngôn ngữ đánh dấu để biểu diễn dữ liệu. View liên kết với các thuộc tính của ViewModel thông qua khái niệm data-bind, kết nối gián tiếp với dữ liệu mô hình. Không cần thay đổi chế độ xem đối với bất kỳ thay đổi nào được thực hiện trong ViewModel. Các thay đổi được thực hiện đối với dữ liệu trong ViewModel được tự động truyền trong View do ràng buộc.

Mô hình

Mô hình là dữ liệu miền hoặc đối tượng kinh doanh, chứa dữ liệu thời gian thực. Mô hình không thực hiện các hành vi. Hành vi hầu hết được thực hiện trong logic kinh doanh.

ViewModel

ViewModel là nơi trung tâm, nơi dữ liệu từ logic hiển thị của Model và View được nhóm lại với nhau. ViewModel giữ trạng thái động của dữ liệu. Có một chất kết dính ngầm giữa View và ViewModel để giao tiếp với nhau. Liên kết này bao gồm dữ liệu khai báo và ràng buộc lệnh. Đồng bộ hóa View và ViewModel được thực hiện thông qua liên kết này. Bất kỳ thay đổi nào được thực hiện trong View đều được phản ánh trong ViewModel và tương tự, bất kỳ thay đổi nào trong ViewModel sẽ được tự động phản ánh trong View. Sự tồn tại của cơ chế ràng buộc 2 chiều này là một khía cạnh chính của mô hình MVVM này.