關於vue項目中mvvm模式的理解
阿新 • • 發佈:2018-02-12
分離 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模式的理解