MVVM在概念上是真正將頁面與數據邏輯分離的模式,在開發方式上,它是真正將前臺代碼開發者(JS+HTML)與后臺代碼開發者分離的模式(asp,asp.net,php,jsp)。在介紹它之前我們先來看一下MVP和MVC的定義:
MVP 是從經典的模式MVC演變而來,它們的基本思想有相通的地方:Controller/Presenter負責邏輯的處理,Model提供數據,View負 責顯示。作為一種新的模式,MVP與MVC有著一個重大的區別:在MVP中View并不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部,而在MVC中View會從直接Model中讀取數據而不是通過 Controller。
MVC里,View是可以直接訪問Model的!從而,View里會包含 Model信息,不可避免的還要包括 一些 業務邏輯。 在MVC模型里,更關注的Model的不變,而同時有多個對Model的不同顯示,及View。所以,在MVC模型里,Model不依賴于View,但是 View是依賴于Model的。不僅如此,因為有一些業務邏輯在View里實現了,導致要更改View也是比較困難的,至少那些業務邏輯是無法重用的。
對于MVVM,我認為它是在Presentation上進行設計的,它前數據綁定工作放到一個JS里去實現,JS由前端開發人員去控制,而這個JS文件的主要功能是完成數據的綁定,即把model綁定到UI的元素上。
MVVM架構~目錄
MVVM架構~Knockoutjs系列之text,value,attr,visible,with的數據綁定
MVVM架構~Knockoutjs系列之js接收C#數據集合的方式
MVVM架構~knockoutjs與MVC配合,實現列表的增刪改功能
MVVM架構~knockoutjs系列之從Knockout.Validation.js源碼中學習它的用法
MVVM架構~knockoutjs系列之正則表達式使規則更靈活
MVVM架構~knockoutjs系列之包括區域級聯列表的增刪改
MVVM架構~knockoutjs系列之驗證信息自定義輸出~續
MVVM架構~knockoutjs系列之驗證信息自定義輸出~再續
MVVM架構~使用boxy和knockoutjs實現編輯功能
MVVM架構~knockoutjs系列之文本框數符長度動態統計功能
MVVM架構~knockoutjs系列之Mapping插件為對象添加ko屬性
MVVM架構~knockoutjs系列之為validation.js擴展minLength和maxLength
MVVM架構~knockoutjs系列之擴展ajax驗證~驗證數據是否存在
MVVM架構~knockoutjs系列之擴展ajax驗證~驗證輸入數據是否與后臺數據相等
MVVM架構~knockoutjs系列之一些異常的總結(永久更新)
MVVM架構~knockoutjs系列之為Ajax傳遞Ko數組對象
MVVM架構~knockoutjs系列之數組的$index和$data
感謝您的閱讀!
文章列表