(一)mvc與mvvm設計模式


前沿:了解設計模式對我們而言,具有很大意義,對語言沒有限制,它適用於任何語言,是一種變成思想。設計模式最初有四人幫提出,有興趣的同學可以去了解下,今天給大家主要分析mvc與mvvm設計模式
一.mvc設計模式:
    字面理解,mvc就是model,view,controller。
 
    三者又分別是什么呢?
    model有模型的意思,不過這里他代表的數據模型。就是說整個項目運行中擔任了數據供給的部分。
    view是視圖的意思,這里代表即前端ui視圖,就是界面。
    cotroller是控制器的意思,在mvc中起着關聯view與model的作用。
 
    三者如何團結合作完成項目的運行呢?
 
    先來說說前端工程師等級的區別:
    我們說前端程序員的等級可以通過分析設計稿看出。
    較為初級的拿到設計稿。第一眼看到的往往是視圖界面,    設計稿上有哪些功能,顏色分類,層級等。
    中級的前端開發工程師拿到設計稿后,第一眼往往會看設計稿有那些功能,輪播圖,分頁,三級聯動等等。
    而高級開發工程師在看到設計稿后,往往會思考,該頁面中有哪些模塊,那些數據分類。如廣告,商品列表等
    
    一個前端項目的完成往往是從建模開始,又牽扯到一個問題,什么是建模?
    建模說白了,就是對ui視圖即界面的抽象。抽象這一過程就是將頁面中的數據分類並分離出來。其實掌握了 這一點,在開發的過程中,往往在沒有后端數據的 情況下,可以精確的mock出准備的數據。
 
    回到三者的團結運行,view視圖還原成功后,靜態頁面就算是完成了,要實現動態,我們就需要從model(數據模型)中拿到我們需要的數據。在這個過程中,view會去controller中查找屬性和方法。屬性從model中拿到數據后反饋給view,最終完成數據的渲染並展示在用戶眼前。
    值得我們注意的是,mvc的流程中 ,controller其實是被動的一個過程,被動接受view發起的請求,然后進行相應的處理。
 
二.mvvm設計模式
    model(數據模型),view(視圖),viewmodel(視圖模型)
      大家可以看到,里面是沒有controller了,但是他將viewmodel代替了controller。在運行過程中起了view和 model的鏈接橋梁,但是又有一點區別與mvc的是,mvc中被動接受view請求的controller在這里,viewmodel給他做了升級,不再是被動接受,而是不斷監聽view,當有新的需求時,就去鏈接model拿去數據,然后返回給頁面,很好的將view和model做了分離,使view和viewmodel可以獨立完成開發。
   缺點:不斷的監聽頁面,性能消耗很大!
 
三.mvc和mvvm的區別
    1.mvc中controller是被動接受請求,而mvvm中作為控制器這一環節的是主動地。
    2.mvc中view可以直接訪問model,因此view中必然包含了業務邏輯,並沒有實現view和model的分離,而mvvm主要是通過數據的雙向綁定機制,在js中實現業務邏輯,進行view和model的關聯,因此mvvm真正意義上實現了view和model的分離。
 
 以上就是總結的有關mvc與mvvm的設計模式,不過都還比較淺層,如果要繼續深究,可以關注這幾個詞匯:臟治檢查,數據監聽,劫持。好了就總結到這里。
有什么問題記得評論,24小時答復。我們一起 進步!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM