国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

前端框架模式MVC、MVVM和MVP的講解

2024-04-27 15:12:15
字體:
來源:轉載
供稿:網友

  復雜的軟件必須有清晰合理的架構,否則無法開發和維護。

  MVC(Model-View-Controller)是最常見的軟件架構之一,業界有著廣泛應用。

  除了MCV模式還有MVVM和MVP模式,下邊就來介紹下著三種模式:

    一. MVC模式的意思是,軟件可以分成三個部分

Model + View + Controller

模型(Model):數據保存

視圖(View):用戶界面

控制器(Controller):業務邏輯

**各部分事件的通信方式

   View -> Controller ->Model -> View

1.View 傳送指令到達Controller

2.Controller 完成業務邏輯后,要求Model改變狀態

3.Model 將新的數據發送到View,用戶得到反饋

**所有的通信都是單向的

* (二) 互動模式

    接受用戶指令時,MVC可以分成兩種方式.

    一種是過View接受指令,傳遞給Controller.

    用戶(開始)->View -> Controller -> Model -> View(結束);

    另一種是直接通過Controller接受指令.

    用戶(開始) -> Controller -> Model -> View(結束);

    開始的位置不同,都遵從通信方式的順序

(三) 實例:(以Backbone.js為例)

    靈活的運用,使得通信方式更加靈活

    1.用戶可以向View發送指令(DOM事件),再由View直接要求Model改變狀態.

    2.用戶也可以直接向Controller發送指令(改變URL觸發hashChange事件),再由Controller發送View.

    3.Controller 非常薄,只起到路由的作用,而View非常厚,業務邏輯都部署在View. 所以,Backbone索性取消了Controller, 只保留一個Router(路由器).

    

    二. MVP MVP模式將Controller改名為PResenter,同時改變了通信方向.

Model + View + Presenter

presenter(主持之類的)

1.各部分之間的通信,都是雙向的.

View <- (雙向) -> Presenter <- (雙向) ->Model

2.View 與 Model不發生練習,都通過Presenter傳遞.

3.View非常薄,不部署任何業務邏輯,被稱為"被動視圖"(Prassive).既沒有任何主動性,  而Presenter非常厚,所有邏輯部署都在這里

    三. MVVM MVVM模式將Presenter改名為ViewModel,基本上與MVP模式完全一致

通信方式 View <- -> ViewModel <- ->Model

唯一的區別是,它采用雙向綁定(data-binding):View的變動,自動反應在ViewMdoel,反之亦然. Angular和Ember都是這種模式.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周口市| 阜平县| 汕尾市| 彭泽县| 即墨市| 正安县| 汉沽区| 翼城县| 密云县| 长丰县| 昭苏县| 蒙城县| 柘城县| 洛浦县| 临泉县| 永仁县| 疏附县| 和顺县| 杭锦旗| 岳西县| 伊川县| 龙江县| 福州市| 花莲县| 崇信县| 米易县| 三门县| 珠海市| 林州市| 宕昌县| 南皮县| 江孜县| 乐平市| 京山县| 航空| 商都县| 博罗县| 科技| 德钦县| 沂南县| 文化|