摘要:設計模式數(shù)據(jù)觀測原理在技術實現(xiàn)上,利用的是和存儲器屬性和所以只兼容及以上版本,可稱為基于依賴收集的觀測機制。核心是,即,保證數(shù)據(jù)和視圖的一致性。采用數(shù)據(jù)劫持結合發(fā)布者訂閱者模式的方式,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應的監(jiān)聽回調。
MVVM設計模式 Model View ViewModel
Vue.js 數(shù)據(jù)觀測原理在技術實現(xiàn)上,利用的是ES5 Object.defineProperty()和存儲器屬性: getter和setter(所以只兼容IE9及以上版本),可稱為基于依賴收集的觀測機制。
核心是VM,即ViewModel,保證數(shù)據(jù)和視圖的一致性。Vue.js 采用數(shù)據(jù)劫持結合發(fā)布者-訂閱者模式的方式,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應的監(jiān)聽回調。
// 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; } });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/99584.html
摘要:執(zhí)行的時候,會綁定上下文對象為組件實例于是中的就能取到組件實例本身,的代碼塊頂層作用域就綁定為了組件實例于是內部變量的訪問,就會首先訪問到組件實例上。其中的獲取,就會先從組件實例上獲取,相當于。 寫文章不容易,點個贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內部詳情,讓我們一起學習吧研究基于 Vue版本 【2.5.17】 如果你覺得...
摘要:什么是雙向數(shù)據(jù)綁定是一個框架,數(shù)據(jù)綁定簡單來說,就是當數(shù)據(jù)發(fā)生變化時,相應的視圖會進行更新,當視圖更新時,數(shù)據(jù)也會跟著變化。 什么是雙向數(shù)據(jù)綁定?Vue是一個MVVM框架,數(shù)據(jù)綁定簡單來說,就是當數(shù)據(jù)發(fā)生變化時,相應的視圖會進行更新,當視圖更新時,數(shù)據(jù)也會跟著變化。 實現(xiàn)數(shù)據(jù)綁定的方式大致有以下幾種: - 1、發(fā)布者-訂閱者模式(backbone.js) - 2、臟值檢查(angula...
閱讀 1867·2021-11-18 10:02
閱讀 3588·2021-11-16 11:45
閱讀 1884·2021-09-10 10:51
閱讀 2194·2019-08-30 15:43
閱讀 1432·2019-08-30 11:23
閱讀 1544·2019-08-29 11:07
閱讀 1961·2019-08-23 17:05
閱讀 1564·2019-08-23 16:14