淺談MVC、MVP、MVVM

1.什麼是mvc?

MVC是Model View Controller的簡寫,Model數據管理層、View視圖層、Controller業務邏輯控制層,是一種設計模式的典範,將數據管理層、視圖層、業務邏輯層分離的代碼組合的模式。前端

  • model數據管理,包含數據邏輯、數據請求、數據存儲等功能。前端Model主要負責ajax請求或者一下本地存儲
  • view主要是負責用戶的界面,前端view主要是渲染功能
  • controller負責處理view的事件,並更新model裏面的數據,也負責監聽model的變化,並更新view,controller控制其餘的多有流程


  1. Controller截獲用戶發出的請求
  2. Controller調用Model完成狀態的讀寫操做
  3. Controller把數據傳遞給View
  4. View渲染最終結果並呈獻給用戶
    在Web MVC中,Controller變成了中繼者,主要工做是協調Model和View
優勢:
  • 代碼以層次分離,每個層次只負責特定的功能,清晰度高,便於書寫
  • 解耦,下降了層與層之間的依賴,代碼更標準化
  • 可維護性高

缺點:vue

  • 視圖與控制器間過於緊密鏈接

2.什麼是MVPajax

MVP是Model、view、Presenter(翻譯:節目主持人,演播員;推薦者;提出者;贈送者)的縮寫,將Controller換成了Presenter,只不過是改變了通訊的方式設計模式


  • 各個層級之間都變成了雙向通訊
  • View和Model之間再也不發生通訊,都是經過Presente去傳遞
  • View變得很是的很是的薄弱,只負責渲染試圖
  • Presenter變的很是的重要和厚重,全部的邏輯處理都在此層

3.什麼是MVVM?mvc

MVVM是Model  View ViewModel的縮寫,只不過是把Presenter換成了viewModel優化


  • 從圖中能夠看出,ViewModel其實在MVP中是在Presenter的位置,其實當vm層或者Model層發生數據變化的時候view就會發生渲染,相同的View層發生變化ViewModel也會變化,這就是數據的雙向綁定,大大的減小了開發這進行Dom操做,大大提升了開發效率

總結:翻譯

我的以爲MVC -> MVP -> MVVM的演變,基本的意思大體是沒有太大的變化,最終實現了一個數據的雙向綁定,可是在總體的項目搭建和項目開發中,不斷的優化的一個方向,好比在vue中數據雙向綁定就體現的淋漓盡致,大大減小了DOM的操做,開發效率也高。設計


----你的贊就是我寫文章的動力😘❤雙向綁定

相關文章
相關標籤/搜索