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