1. MVC框架
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
1.1 MVC 編程模式
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式: [1]
-
Model(模型)表示應用程序核心(如數據庫)。
-
View(視圖)顯示效果(HTML頁面)。
-
Controller(控制器)處理輸入(業務邏輯)。
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。
通常模型對象負責在數據庫中存取數據。
View(視圖)是應用程序中處理數據顯示的部分。
通常視圖是依據模型數據創建的。
Controller(控制器)是應用程序中處理用戶交互的部分。
通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
2.MVVM框架
MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開。當然這些事 ViewModel 已經幫我們做了,它可以取出 Model 的數據同時幫忙處理 View 中由於需要展示內容而涉及的業務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足於原有MVP框架並且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
2.1 MVVM模式的組成部分
模型
-
模型是指代表真實狀態內容的領域模型(面向對象),或指代表內容的數據訪問層(以數據為中心)。
視圖
-
就像在MVC和MVP模式中一樣,視圖是用戶在屏幕上看到的結構、布局和外觀(UI)。
視圖模型
-
視圖模型是暴露公共屬性和命令的視圖的抽象。MVVM沒有MVC模式的控制器,也沒有MVP模式的presenter,有的是一個綁定器。在視圖模型中,綁定器在視圖和數據綁定器之間進行通信。
綁定器
-
聲明性數據和命令綁定隱含在MVVM模式中。在Microsoft解決方案堆中,綁定器是一種名為XAML的標記語言。綁定器使開發人員免於被迫編寫樣板式邏輯來同步視圖模型和視圖。在微軟的堆之外實現時,聲明性數據綁定技術的出現是實現該模式的一個關鍵因素。
3.MVVM框架與MVC框架的區別
mvc 和 mvvm 其實區別並不大。都是一種設計思想,主要區別如下:
1.mvc 中 Controller演變成 mvvm 中的 viewModel
2.mvvm 通過數據來驅動視圖層的顯示而不是節點操作。
3.mvc中Model和View是可以直接打交道的,造成Model層和View層之間的耦合度高。而mvvm中Model和View不直接交互,而是通過中間橋梁ViewModel來同步
4.mvvm主要解決了:mvc中大量的DOM 操作使頁面渲染性能降低,加載速度變慢,影響用戶體驗

