1. 程式人生 > >關於vue項目中mvvm模式的理解

關於vue項目中mvvm模式的理解

分離 res margin 雙向數據綁定 .get bsp 模式 ons ()

欲談mvvm 必談mvp,欲談mvp 必談mvc

mvc模式:view監聽model,controller監聽view並改變model,model被改變觸發view的改變

mvc的兩個問題:

  1:view與model高度耦合

  2:controller太重

mvp模式:MVP的目的在於隔離model和view,view復雜界面的展示邏輯,model負責數據的處理邏輯,Presenter復雜整合view層和model層

//model層
function userModel(data){
  this.name = data.name;
  this.avatar = data.avatar;
}
function getUserData(){ return fetch("http://test.com/getUSer") .then(function(response){ var userData = response.data; return new userModel(userData) }) } //Presenter層 function userPresenter(){ var userData = getUserData();//網絡請求獲取用戶數據 userData.then(function(userData){ new userView().showUserMes(user); }) }
//view層 function userView(){ } userView.prototype.showUserMes = function(userData){ document.getElementByID("username").value = userData.name; document.getElementByID("useravatar").value = userData.avatar; }

如圖在view層編寫基本的視圖邏輯,而數據層編寫基本的數據請求,在presenter層復雜將兩者整合起來,這樣達到了view與model分離的目的,同時將業務邏輯中視圖方面的邏輯放入到view層

mvvm模式:mvvm模式主要是在於v-vm和v-p的改變,mvvm的雙向數據綁定優化了v-p模式下關於view層與presenter層的交互。其他地方則與mvp無異,

關於vue項目中mvvm模式的理解