Model | View | M與V聯繫的方式 |
Controller | ||
Presenter | ||
ViewModel |
能夠清楚看出三者模塊的區別在於M與V之間的聯繫:前端
Controller: 負責監聽View的用戶事件,獲得的數據後Controller處理。而後渲染View。(缺點:Model或者Controller和View耦合一塊兒 的,沒有辦法單獨驗證應用邏輯的正確性)編程
Presenter: 比起Controller,presenter會調用View層提供的接口去渲染Model。(這樣作的好處:面向接口編程,更好的耦合,方便作 單元測試)(缺點:若是程序複雜,須要提供不少的接口)後端
ViewModel:是本身提供API,MVVM在VM中構建一組狀態數據(state data),做爲View狀態的抽象。而後經過雙向數據的綁定,是VM中狀 態數據(state data)與View(screen state)保持一致。這樣在VM的邏輯只須要修改對應的狀態的數據,就能夠控制View模塊化
它是以數據驅動和組件化的思想構建的。優點:比angular.js提供更加簡潔,更加易於理解的API。工具
DOM Listeners 和 Data Bindings看做兩個工具,他們是實現雙向綁定的關鍵。 從View 側看,View Model 中View Listeners工具會幫助咱們檢測頁面上DOM元素的變化。若是有變化,則更改Model的數據。從MOdel這一側看,當咱們更新數據時,Data Bindings 工具會幫助咱們更新頁面中的DOM的元素。組件化
1.定義View 2.定義Model 3.建立一個Vue實例或ViewModel,它用於鏈接View和Model單元測試
v-if v-show v-else v-for v-bind v-on v-model測試