- Vue.js從入門到項目實踐(超值版)
- 聚慕課教育研發中心編著
- 778字
- 2022-07-29 14:27:28
1.3.3 MVVM模式介紹

MVVM是Model View ViewModel的簡寫,它本質上就是MVC模式的改進版,目的是將其中View的狀態及行為抽象化,將視圖UI和業務邏輯分開。ViewModel可以做這些事情,它可以取出Model的數據,同時幫助處理View中由于需要展示內容而涉及的業務邏輯。如今越來越多的新技術,例如Silverlight、音頻、視頻、3D、動畫等技術的發展導致了軟件UI層更加細節化、可定制化。同時,在技術層面,WPF帶來了如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM模式便是由MVP模式與WPF結合的應用方式發展演變過來的一種新型架構模式。它立足于原有MVP模式并把WPF的新特性納入進去,以應對客戶日益復雜的需求變化。
1.MVVM模式的優點
MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),以下是MVVM模式的優點。
(1)低耦合。View可以獨立于Model變化和修改,一個ViewModel可以綁定到不同的View上,當View變化時Model可以不變,當Model變化時View也可以不變。
(2)可重用性。可以將一些視圖邏輯放在一個ViewModel中,讓很多View重用這段視圖邏輯。
(3)獨立開發。開發者可以專注于業務邏輯和數據的開發(ViewModel),設計人員可以專注于頁面設計,使用Expression Blend工具可以很容易地設計界面并生成XAML代碼。
(4)可測試。界面素來是比較難測試的,而基于MVVM模式,測試可以針對ViewModel來寫。
2.MVVM模式的組成部分
(1)模型:模型是指代表真實狀態內容的領域模型(面向對象),或指代表內容的數據訪問層(以數據為中心)。
(2)視圖:就像在MVC和MVP模式中一樣,視圖是用戶在屏幕上看到的結構、布局和外觀。
(3)視圖模型:視圖模型是暴露公共屬性和命令的視圖抽象。MVVM模式沒有MVC模式的控制器,也沒有MVP模式的Presenter,有的是一個綁定器。在視圖模型中,綁定器在視圖和數據綁定器之間進行通信。
在Microsoft解決方案中,綁定器是一種名為XAML的標記語言。綁定器使開發者免于被迫編寫樣板式邏輯來同步視圖模型和視圖。聲明性數據和命令綁定隱含在MVVM模式中,聲明性數據綁定技術的出現是實現該模式的一個關鍵因素。