国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【揮舞JS】vue雙向數(shù)據(jù)綁定v-model實現(xiàn)原理

XanaHopper / 361人閱讀

摘要:設(shè)計模式數(shù)據(jù)觀測原理在技術(shù)實現(xiàn)上,利用的是和存儲器屬性和所以只兼容及以上版本,可稱為基于依賴收集的觀測機(jī)制。核心是,即,保證數(shù)據(jù)和視圖的一致性。采用數(shù)據(jù)劫持結(jié)合發(fā)布者訂閱者模式的方式,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。

MVVM設(shè)計模式 Model View ViewModel

Vue.js 數(shù)據(jù)觀測原理在技術(shù)實現(xiàn)上,利用的是ES5 Object.defineProperty()和存儲器屬性: getter和setter(所以只兼容IE9及以上版本),可稱為基于依賴收集的觀測機(jī)制。
核心是VM,即ViewModel,保證數(shù)據(jù)和視圖的一致性。Vue.js 采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。


// Model
var data = {
    message: "",
    list: []
};
// ViewModel
var app = document.getElementById("app");
var Elements = app.querySelectorAll("[v-model]");
for (var i = 0; i < Elements.length; i++) {
    Elements[i].oninput = function () {
        data[this.getAttribute("v-model")] = this.value;
    }
}

Object.defineProperty(data, "message", {
    get: function () {
        return data.str;
    },
    set: function (val) {
        var Elements = app.querySelectorAll("[v-model=message]");
        for (var i = 0; i < Elements.length; i++) {
            Elements[i].value = val;
            Elements[i].innerText = val;
        }
        data.str = val;
    }
});

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/99584.html

相關(guān)文章

  • Vue原理】VModel - 白話版

    摘要:執(zhí)行的時候,會綁定上下文對象為組件實例于是中的就能取到組件實例本身,的代碼塊頂層作用域就綁定為了組件實例于是內(nèi)部變量的訪問,就會首先訪問到組件實例上。其中的獲取,就會先從組件實例上獲取,相當(dāng)于。 寫文章不容易,點個贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究基于 Vue版本 【2.5.17】 如果你覺得...

    keke 評論0 收藏0
  • vue雙向數(shù)據(jù)綁定原理

    摘要:什么是雙向數(shù)據(jù)綁定是一個框架,數(shù)據(jù)綁定簡單來說,就是當(dāng)數(shù)據(jù)發(fā)生變化時,相應(yīng)的視圖會進(jìn)行更新,當(dāng)視圖更新時,數(shù)據(jù)也會跟著變化。 什么是雙向數(shù)據(jù)綁定?Vue是一個MVVM框架,數(shù)據(jù)綁定簡單來說,就是當(dāng)數(shù)據(jù)發(fā)生變化時,相應(yīng)的視圖會進(jìn)行更新,當(dāng)視圖更新時,數(shù)據(jù)也會跟著變化。 實現(xiàn)數(shù)據(jù)綁定的方式大致有以下幾種: - 1、發(fā)布者-訂閱者模式(backbone.js) - 2、臟值檢查(angula...

    Yumenokanata 評論0 收藏0
  • Vue基本原理

    摘要:標(biāo)簽添加監(jiān)聽事件文本節(jié)點這一步我們操作頁面輸入框,可以看到以下效果,證明監(jiān)聽事件添加有效。 前言 經(jīng)過幾天的研究,發(fā)現(xiàn)學(xué)習(xí)框架的底層技術(shù),收獲頗豐,相比只學(xué)習(xí)框架的使用要來的合算;如果工作急需,快速上手應(yīng)用,掌握如何使用短期內(nèi)更加高效;如果有較多的時間來系統(tǒng)學(xué)習(xí),建議研究一下框架的等層技術(shù)、原理。 Vue、React、Angular三大框架對比 1、Vue Vue是尤雨溪編寫的一個構(gòu)建...

    firim 評論0 收藏0
  • Vue基本原理

    摘要:標(biāo)簽添加監(jiān)聽事件文本節(jié)點這一步我們操作頁面輸入框,可以看到以下效果,證明監(jiān)聽事件添加有效。 前言 經(jīng)過幾天的研究,發(fā)現(xiàn)學(xué)習(xí)框架的底層技術(shù),收獲頗豐,相比只學(xué)習(xí)框架的使用要來的合算;如果工作急需,快速上手應(yīng)用,掌握如何使用短期內(nèi)更加高效;如果有較多的時間來系統(tǒng)學(xué)習(xí),建議研究一下框架的等層技術(shù)、原理。 Vue、React、Angular三大框架對比 1、Vue Vue是尤雨溪編寫的一個構(gòu)建...

    ytwman 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<