您好,登錄后才能下訂單哦!
本篇內容介紹了“vue中mvvm和mvc的區別是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
mvvm和mvc的區別:1、mvvm各部分的通信是雙向的,而mvc各部分通信是單向的。2、MVVM實現了view與model的自動同步,也就是model屬性改變時,不需要手動操作dom元素去改變view的顯示,而是改變屬性后該屬性對應的view層會自動改變。
MVC是一種設計模式:
M(Model):模型層。是應用程序中用于處理應用程序數據邏輯的部分,模型對象負責在數據庫中存取數據;
V(View):視圖層。是應用程序中處理數據顯示的部分,視圖是依據模型數據創建的;
C(Controller):控制層。是應用程序中處理用戶交互的部分,控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調用哪個模型構件去處理請求,然后再確定用哪個視圖來顯示返回的數據。
vue框架中MVVM的M就是后端的數據,V就是節點樹,VM就是new出來的那個Vue({})對象
M(Model):模型層。就是業務邏輯相關的數據對象,通常從數據庫映射而來,我們可以說是與數據庫對應的model。
V(View):視圖層。就是展現出來的用戶界面。
VM(ViewModel):視圖模型層。連接view和model的橋梁。因為,Model層中的數據往往是不能直接跟View中的控件一一對應上的,所以,需要再定義一個數據對象專門對應view上的控件。而ViewModel的職責就是把model對象封裝成可以顯示和接受輸入的界面數據對象。
View與ViewModel之間通過雙向綁定建立聯系,這樣當View(視圖層)變化時,會自動更新到ViewModel(視圖模型),反之亦然。
MVVM的優勢
1、mvc和mvvm都是一種設計思想。 主要就是mvc中Controller演變成mvvm中的viewModel。 mvvm主要解決了mvc中大量DOM操作使頁面渲染性能降低,加載速度變慢的問題 。
2、MVVM與MVC最大的區別就是:它實現了View和Model的自動同步:當Model的屬性改變時,我們不用再自己手動操作Dom元素來改變View的顯示,它會自動變化。
3、整體看來,MVVM比MVC精簡很多,我們不用再用選擇器頻繁地操作DOM。
MVVM并不是用VM完全取代了C,ViewModel存在目的在于抽離Controller中展示的業務邏輯,而不是替代Controller,其它視圖操作業務等還是應該放在Controller中實現。
區別一:
mvvm各部分的通信是雙向的,而mvc各部分通信是單向的。
區別二:
MVVM 與 MVC 最大的區別就是:它實現了View和Model的自動同步
當Model屬性改變時,不用手動操作Dom元素去改變View的顯示。
而改變屬性后,該屬性對應View的顯示會自動改變
vue是采用數據劫持配合發布者-訂閱者的模式的方式,
通過Object.defineProperty()來劫持各個屬性的getter和setter,
在數據變動時,發布消息給依賴收集器(dep中的subs),去通知(notify)觀察者,做出對應的回調函數,更新視圖
MVVM作為綁定的入口,整合Observer,Compile和Watcher三者,
通過Observer來監聽model數據變化,
通過Compile來解析編譯模板指令,
最終利用Watcher搭起Observer,Compile之間的通信橋路,
達到數據變化Observer)=>視圖更新;視圖交互變化=>數據model變更的雙向綁定效果。
“vue中mvvm和mvc的區別是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。