1.什麼是mvc?
MVC是Model View Controller的簡寫,Model數據管理層、View視圖層、Controller業務邏輯控制層,是一種設計模式的典範,將數據管理層、視圖層、業務邏輯層分離的代碼組合的模式。
前端
- model數據管理,包含數據邏輯、數據請求、數據存儲等功能。前端Model主要負責ajax請求或者一下本地存儲
- view主要是負責用戶的界面,前端view主要是渲染功能
- controller負責處理view的事件,並更新model裏面的數據,也負責監聽model的變化,並更新view,controller控制其餘的多有流程
![](http://static.javashuo.com/static/loading.gif)
- Controller截獲用戶發出的請求
- Controller調用Model完成狀態的讀寫操做
- Controller把數據傳遞給View
- View渲染最終結果並呈獻給用戶
在Web MVC中,Controller變成了中繼者,主要工做是協調Model和View
優勢:
- 代碼以層次分離,每個層次只負責特定的功能,清晰度高,便於書寫
- 解耦,下降了層與層之間的依賴,代碼更標準化
- 可維護性高
缺點:vue
2.什麼是MVPajax
MVP是Model、view、Presenter(翻譯:節目主持人,演播員;推薦者;提出者;贈送者)的縮寫,將Controller換成了Presenter,只不過是改變了通訊的方式設計模式
![](http://static.javashuo.com/static/loading.gif)
- 各個層級之間都變成了雙向通訊
- View和Model之間再也不發生通訊,都是經過Presente去傳遞
- View變得很是的很是的薄弱,只負責渲染試圖
- Presenter變的很是的重要和厚重,全部的邏輯處理都在此層
3.什麼是MVVM?mvc
MVVM是Model View ViewModel的縮寫,只不過是把Presenter換成了viewModel優化
![](http://static.javashuo.com/static/loading.gif)
- 從圖中能夠看出,ViewModel其實在MVP中是在Presenter的位置,其實當vm層或者Model層發生數據變化的時候view就會發生渲染,相同的View層發生變化ViewModel也會變化,這就是數據的雙向綁定,大大的減小了開發這進行Dom操做,大大提升了開發效率
總結:翻譯
我的以爲MVC -> MVP -> MVVM的演變,基本的意思大體是沒有太大的變化,最終實現了一個數據的雙向綁定,可是在總體的項目搭建和項目開發中,不斷的優化的一個方向,好比在vue中數據雙向綁定就體現的淋漓盡致,大大減小了DOM的操做,開發效率也高。設計
----你的贊就是我寫文章的動力😘❤雙向綁定