最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中的MVVM模式使用及說明

 更新時間:2023年06月02日 10:11:39   作者:西瓜咬人啦  
這篇文章主要介紹了Vue中的MVVM模式使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MVVM模式

簡介

? MVVM旨在利用WPF中的數(shù)據(jù)綁定函數(shù),通過從視圖層中幾乎刪除所有GUI代碼(代碼隱藏),更好地促進視圖層開發(fā)與模式其余部分的分離。

不需要用戶體驗(UX)開發(fā)人員編寫GUI代碼,他們可以使用框架標(biāo)記語言(如XAML),并創(chuàng)建到應(yīng)用程序開發(fā)人員編寫和維護的視圖模型的數(shù)據(jù)綁定。

角色的分離使得交互設(shè)計師可以專注于用戶體驗需求,而不是對業(yè)務(wù)邏輯進行編程。

這樣,應(yīng)用程序的層次可以在多個工作流中進行開發(fā)以提高生產(chǎn)力。即使一個開發(fā)人員在整個代碼庫上工作,視圖與模型的適當(dāng)分離也會更加高效,因為基于最終用戶反饋,用戶界面通常在開發(fā)周期中經(jīng)常發(fā)生變化,而且處于開發(fā)周期后期。

MVVM模式試圖獲得MVC提供的功能性開發(fā)分離的兩個優(yōu)點,同時利用數(shù)據(jù)綁定的優(yōu)勢和通過綁定數(shù)據(jù)的框架盡可能接近純應(yīng)用程序模型。

它使用綁定器、視圖模型和任何業(yè)務(wù)層的數(shù)據(jù)檢查功能來驗證傳入的數(shù)據(jù)。

結(jié)果是模型和框架驅(qū)動盡可能多的操作,消除或最小化直接操縱視圖的應(yīng)用程序邏輯(如代碼隱藏)。

MVVM

  • M (model):模型對象:指的是構(gòu)成界面內(nèi)容的相關(guān)數(shù)據(jù)
  • V(view): view: 視圖對象:指的是給用戶或者開發(fā)者展示數(shù)據(jù)的界面
  • VM(viewmodel): 視圖模型對象:是view與model之間的橋梁

MVVM模式的組成部分

  • 模型

模型是指代表真實狀態(tài)內(nèi)容的領(lǐng)域模型(面向?qū)ο螅?,或指代表?nèi)容的數(shù)據(jù)訪問層(以數(shù)據(jù)為中心)。

  • 視圖

就像在MVC和MVP模式中一樣,視圖是用戶在屏幕上看到的結(jié)構(gòu)、布局和外觀(UI)。

  • 視圖模型

視圖模型是暴露公共屬性和命令的視圖的抽象。

MVVM沒有MVC模式的控制器,也沒有MVP模式的presenter,有的是一個綁定器。

在視圖模型中,綁定器在視圖和數(shù)據(jù)綁定器之間進行通信。

  • 綁定器

聲明性數(shù)據(jù)和命令綁定隱含在MVVM模式中。在Microsoft解決方案堆中,綁定器是一種名為XAML的標(biāo)記語言。

綁定器使開發(fā)人員免于被迫編寫樣板式邏輯來同步視圖模型和視圖。

在微軟的堆之外實現(xiàn)時,聲明性數(shù)據(jù)綁定技術(shù)的出現(xiàn)是實現(xiàn)該模式的一個關(guān)鍵因素。

Vue.js的核心ViewModel

ViewModel是Vue.js的核心,它是一個Vue實例。

Vue實例是作用于某一個HTML元素上的,這個元素可以是HTML的body元素,也可以是指定了id的某個元素。

創(chuàng)建了ViewModel后的雙向綁定達成

首先,我們將上圖中的DOM Listeners和Data Bindings看作兩個工具,它們是實現(xiàn)雙向綁定的關(guān)鍵。

  • 從View側(cè)看,ViewModel中的DOM Listeners工具會幫我們監(jiān)測頁面上DOM元素的變化,如果有變化,則更改Model中的數(shù)據(jù);
  • 從Model側(cè)看,當(dāng)我們更新Model中的數(shù)據(jù)時,Data Bindings工具會幫我們更新頁面中的DOM元素。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- div鋪滿全屏而不是縮放網(wǎng)頁  -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Edge 模式通知 Windows Internet Explorer 以最高級別的可用模式顯示內(nèi)容,
        這實際上破壞了“鎖定”模式。即如果你有IE9的話說明你有IE789,那么就調(diào)用高版本的那個也就是IE9。
     -->
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>原生實現(xiàn)js實現(xiàn)M-V-VM</title>
    <script>
        /*
          MVVM : model 模型對象--》指的是構(gòu)成界面內(nèi)容的相關(guān)數(shù)據(jù)
                 view  視圖對象--》指的給給用戶或者開發(fā)者展示數(shù)據(jù)的界面
                 viewmodel 視圖模型對象--》 指的是view與model之間的橋梁
        */
        let msg="Hello world!";//相當(dāng)于model
        window.onload=function(){
            let h4Dom = document.getElementById("h4Dom");
            let inputDom = document.getElementById("inputDom");
            h4Dom.innerHTML=msg;
            inputDom.value=msg;
            //通過對事件源的監(jiān)聽來實現(xiàn),為js對象實現(xiàn)動態(tài)事件監(jiān)聽
            //input輸入事件
            inputDom.addEventListener("input",function(){
                msg=this.value;
                h4Dom.innerHTML=msg;
            });
        }
    </script>
</head>
<body>
    <div>
        <h4 id="h4Dom"></h4>
        <input type="text" value="" id="inputDom"/>
    </div>
</body>
</html>

實現(xiàn)效果

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談在Vue.js中如何實現(xiàn)時間轉(zhuǎn)換指令

    淺談在Vue.js中如何實現(xiàn)時間轉(zhuǎn)換指令

    這篇文章主要介紹了淺談在Vue.js中如何實現(xiàn)時間轉(zhuǎn)換指令,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • VUE使用axios調(diào)用后臺API接口的方法

    VUE使用axios調(diào)用后臺API接口的方法

    這篇文章主要介紹了VUE使用axios調(diào)用后臺API接口的方法,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • 關(guān)于vue3+echart5?遇到的坑?Cannot?read?properties?of?undefined?(reading?'type')

    關(guān)于vue3+echart5?遇到的坑?Cannot?read?properties?of?undefine

    這篇文章主要介紹了vue3+echart5?遇到的坑?Cannot?read?properties?of?undefined?(reading?'type'),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • vue實現(xiàn)在一個方法執(zhí)行完后執(zhí)行另一個方法的示例

    vue實現(xiàn)在一個方法執(zhí)行完后執(zhí)行另一個方法的示例

    今天小編就為大家分享一篇vue實現(xiàn)在一個方法執(zhí)行完后執(zhí)行另一個方法的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue axios 跨域請求無法帶上cookie的解決

    Vue axios 跨域請求無法帶上cookie的解決

    這篇文章主要介紹了Vue axios 跨域請求無法帶上cookie的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue實現(xiàn)Dialog封裝

    Vue實現(xiàn)Dialog封裝

    在寫業(yè)務(wù)的時候很常見的一個場景就是需要在不同的頁面調(diào)用同一個表單,常用的交互就是把表單以彈窗的形式展示,本文主要介紹了Vue實現(xiàn)Dialog封裝,感興趣的可以了解一下
    2021-07-07
  • Vue3數(shù)據(jù)更新,頁面沒有同步更新的問題及解決

    Vue3數(shù)據(jù)更新,頁面沒有同步更新的問題及解決

    這篇文章主要介紹了Vue3數(shù)據(jù)更新,頁面沒有同步更新的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 詳解vite+ts快速搭建vue3項目以及介紹相關(guān)特性

    詳解vite+ts快速搭建vue3項目以及介紹相關(guān)特性

    這篇文章主要介紹了vite+ts快速搭建vue3項目以及介紹相關(guān)特性,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • vue中destroyed方法的使用說明

    vue中destroyed方法的使用說明

    這篇文章主要介紹了vue中destroyed方法的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue源碼makeMap函數(shù)深入分析

    Vue源碼makeMap函數(shù)深入分析

    vue源碼中的makeMap用在很多地方,主要是判斷標(biāo)簽是原生標(biāo)簽還是用戶自定義的組件,但是標(biāo)簽很多,如果每判斷一次都執(zhí)行一次循環(huán),累計下來,性能損耗還是很大的,makeMap就是解決這個問題出現(xiàn)的
    2022-08-08

最新評論

玉龙| 吉木萨尔县| 衢州市| 措勤县| 巴马| 天水市| 高雄市| 罗江县| 武安市| 嵩明县| 新沂市| 临朐县| 云梦县| 贺州市| 五家渠市| 漯河市| 永顺县| 犍为县| 新邵县| 兴文县| 阆中市| 墨竹工卡县| 湾仔区| 华坪县| 崇信县| 鸡东县| 阳原县| 西畴县| 洪泽县| 乌拉特后旗| 辉县市| 库伦旗| 诸城市| 沧州市| 建平县| 基隆市| 集贤县| 旬阳县| 龙州县| 日照市| 商丘市|