前端MVVM是一種軟件架構設計模式,其本質上就是MVC的改進版,就是將其中的View的狀態(tài)和行為抽象化,讓開發(fā)者將視圖UI和業(yè)務邏輯分開,該模式的優(yōu)點有低耦合、可重用性、獨立開發(fā)和可測試。
MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務邏輯分開。當然這些事 ViewModel 已經幫我們做了,它可以取出 Model 的數據同時幫忙處理 View 中由于需要展示內容而涉及的業(yè)務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節(jié)化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發(fā)展演變過來的一種新型架構框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
MVVM邏輯圖
MVVM模式的組成部分
模型
模型是指代表真實狀態(tài)內容的領域模型(面向對象),或指代表內容的數據訪問層(以數據為中心)。
視圖
就像在MVC和MVP模式中一樣,視圖是用戶在屏幕上看到的結構、布局和外觀(UI)。
視圖模型
視圖模型是暴露公共屬性和命令的視圖的抽象。MVVM沒有MVC模式的控制器,也沒有MVP模式的presenter,有的是一個綁定器。在視圖模型中,綁定器在視圖和數據綁定器之間進行通信。
綁定器
聲明性數據和命令綁定隱含在MVVM模式中。在Microsoft解決方案堆中,綁定器是一種名為XAML的標記語言。綁定器使開發(fā)人員免于被迫編寫樣板式邏輯來同步視圖模型和視圖。在微軟的堆之外實現時,聲明性數據綁定技術的出現是實現該模式的一個關鍵因素。
推薦教程:《JS教程》