国产探花免费观看_亚洲丰满少妇自慰呻吟_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都是這種模式.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文山县| 娄烦县| 原平市| 东辽县| 凌云县| 华蓥市| 潞城市| 大英县| 米泉市| 宣恩县| 拜城县| 临海市| 阿图什市| 和田市| 嘉善县| 余姚市| 东平县| 庆云县| 宁德市| 兰西县| 元朗区| 沂源县| 莲花县| 南雄市| 大荔县| 寻乌县| 城市| 汪清县| 阳曲县| 项城市| 磐石市| 庐江县| 新疆| 娄底市| 玉溪市| 罗山县| 丹凤县| 宁化县| 南丹县| 佛坪县| 滦平县|