成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript MV*模式

Warren / 685人閱讀

摘要:描述的是的當(dāng)前狀態(tài)。持久化可以允許我們編輯和更新模型保存其最新?tīng)顟B(tài)在內(nèi)存中用戶的數(shù)據(jù)存儲(chǔ)中或者與數(shù)據(jù)庫(kù)同步。引用到集合模型過(guò)濾所有被查看過(guò)的圖片過(guò)濾所有未被查看過(guò)的圖片視圖視圖是模型的可視化表示視圖是關(guān)于構(gòu)建和維護(hù)一個(gè)元素。

javascript三個(gè)非常重要的架構(gòu)模式:

MVC(模型-視圖-控制器) backbone

MVP(模型-視圖-表示器)

MVVM(模型-視圖-視圖模型)

1. MVC

將業(yè)務(wù)數(shù)據(jù)(Model),用戶界面(View)隔離,(Controller)管理邏輯和用戶輸入

Model 代表特定于領(lǐng)域的數(shù)據(jù),不了解用戶界面(View(視圖),Controller(控制器)).當(dāng)一個(gè)Model(模型)改變時(shí),它會(huì)通知它的觀察者。

View 描述的是Model的當(dāng)前狀態(tài)。Observer模式用于讓View了解Model什么時(shí)候更新或修改

Presentation由View關(guān)注,但不只是單個(gè)View(視圖)和Controller(控制器),屏幕上顯示的每個(gè)部分或者元素都需要View-Controller對(duì)。

Controller 在這個(gè)View-Controller對(duì)中的作用是處理用戶交互(如按鍵和點(diǎn)擊等動(dòng)作),為View做決定。

1.1 Model(模型)

使用Backbone實(shí)現(xiàn)的一個(gè)非常簡(jiǎn)單的Model(模型)

var Photo = Backbone.Model.extend({
    //photo的默認(rèn)屬性
    defaults: {
       src: "placeholder.jpg",
       caption: "A default image",
       viewed: false
    },
    
    //確保每個(gè)photo都有一個(gè)src
    initialize: function(){
        this.set({"src": this.defaults.src});
    }
});

在實(shí)際應(yīng)用程序中使用Model(模型)時(shí),我們一般也要求Model(模型)具持久化。持久化可以允許我們編輯和更新Model(模型),保存其最新?tīng)顟B(tài)在內(nèi)存中、用戶的localStorage數(shù)據(jù)存儲(chǔ)中或者與數(shù)據(jù)庫(kù)同步。

一個(gè)Model(模型)可能有多個(gè)觀察它的View(視圖)。

在集合組(Backbone)里管理Model(模型)允許我們根據(jù)從組中收到的通知編寫(xiě)應(yīng)用程序邏輯,該組中包含的所有Model(模型)都應(yīng)被改變。

var PhotoGallery = Backbone.Collection.extend({
    
    //引用到集合模型
    model: Photo,
    
    //過(guò)濾所有被查看過(guò)的圖片
    viewed: function(){
        return this.filter(function(photo){
            return photo.get("viewed");
        });
    },
    
    //過(guò)濾所有未被查看過(guò)的圖片
    unviewed: function(){
       return this.without.apply(this, this.viewed());
    }
    
});
1.2 View(視圖)
視圖是Model(模型)的可視化表示,JavascriptView視圖是關(guān)于構(gòu)建和維護(hù)一個(gè)DOM元素。
1.3 Controller(控制器) 2. MVP 3. MVVM

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78875.html

相關(guān)文章

  • Javascript MVC框架簡(jiǎn)介

    摘要:當(dāng)前有超過(guò)個(gè)框架,但是其中很多沒(méi)有使用。扮演了的角色,使用處理用戶輸入同時(shí)檢索數(shù)據(jù)為數(shù)據(jù)格式化,用于展現(xiàn)類似,提供了和之間的數(shù)據(jù)綁定借鑒了其他模式,沒(méi)有特定的名稱。 https://speakerdeck.com/addyosmani/digesting-javascript-mvc 這里看了一個(gè)關(guān)于js mvc框架的ppt,作者是一位google的工程師,感覺(jué)挺全面挺有意思,適合像我...

    jsyzchen 評(píng)論0 收藏0
  • 如何實(shí)現(xiàn)一個(gè)MV*模式MVC/MVP/MVVM)

    摘要:首先我們要大概搞清楚一些什么模式。什么模式是等的一個(gè)統(tǒng)稱,它們各有不同,但本質(zhì)上其實(shí)是一個(gè)東西。不關(guān)心它會(huì)被如何顯示或是如何被操作。效果圖如下,我們只關(guān)心功能實(shí)現(xiàn),所以樣式丑我們先忍一下。 假如讓你不依托任何前端框架(React/Vue/Angular等等),單純用Javascript編寫(xiě)一個(gè)網(wǎng)站應(yīng)用,你還知道怎么開(kāi)發(fā)嗎? 舉個(gè)例子,產(chǎn)品經(jīng)理讓你實(shí)現(xiàn)一個(gè)網(wǎng)頁(yè),上面有一張貓咪的圖片,貓咪...

    Cc_2011 評(píng)論0 收藏0
  • MVC,MVP 和 MVVM 模式如何選擇?

    摘要:如何同步的變更。在沒(méi)有環(huán)境下對(duì)進(jìn)行單元測(cè)試的時(shí)候,業(yè)務(wù)邏輯的正確性是無(wú)法驗(yàn)證的更新的時(shí)候,無(wú)法對(duì)的更新操作進(jìn)行斷言。對(duì)是通過(guò)接口進(jìn)行,在對(duì)進(jìn)行不依賴環(huán)境的單元測(cè)試的時(shí)候。這里根據(jù)上面的例子給出了的單元測(cè)試樣例。 前言 做客戶端開(kāi)發(fā)、前端開(kāi)發(fā)對(duì)MVC、MVP、MVVM這些名詞不了解也應(yīng)該大致聽(tīng)過(guò),都是為了解決圖形界面應(yīng)用程序復(fù)雜性管理問(wèn)題而產(chǎn)生的應(yīng)用架構(gòu)模式。 網(wǎng)上很多文章關(guān)于這方面的討...

    Worktile 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<