欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue的mvvm模式

洪振霞2年前8瀏覽0評論

MVVM(Model-View-ViewModel)是一種設計模式,是在MVC(Model-View-Controller)的基礎上演化而來的,旨在通過數據綁定來實現View和Model之間的雙向綁定,同時ViewModel作為View和Model之間的數據傳輸層,負責將View的操作轉化成對Model的操作,將Model的數據轉化成View可以顯示的數據。

var data = {
message: "Hello, Vue!",
username: "Guest"
};
var vm = new Vue({
el: "#app",
data: data,
computed: {
greeting: function() {
return `Welcome, ${this.username}! ${this.message} `;
}
},
methods: {
changeMessage: function() {
this.message = "Nice to meet you!";
}
}
});

Vue采用了MVVM模式,并加以改進,將ViewModel進一步細分為Observer、Compiler和Watcher。Observer將Model數據轉化成帶有數據劫持功能的Observer對象,Compiler將模板和Observer進行合成,生成可以渲染的View,Watcher監聽數據變化,并將變化反映到View的相關節點上。

var data = {
message: "Hello, Vue!"
};
function Observer(data) {
this.data = data;
this.walk(data);
}
Observer.prototype = {
walk: function(obj) {
var val;
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
val = obj[key];
if (typeof val === "object") {
new Observer(val);
}
this.convert(key, val);
}
}
},
convert: function(key, val) {
Object.defineProperty(this.data, key, {
configurable: true,
enumerable: true,
get: function() {
console.log("你訪問了 " + key);
return val;
},
set: function(newVal) {
console.log("你設置了 " + key + ",新的值為 " + newVal);
if (newVal === val) return;
val = newVal;
}
});
}
};

Vue的數據綁定機制采用了雙向數據綁定和單向數據綁定兩種方式。雙向數據綁定指的是數據的變化可以自動反映到View上,View的變化也可以自動反映到數據上;單向數據綁定指的是數據的變化只能自動反映到View上或者View的變化只能自動反映到數據上。

{{message}}

var vm = new Vue({ el: "#app", data: { message: "Hello, Vue!" } });

Vue的數據綁定機制將MVVM模式完美地實現,它使得View和Model之間的數據同步變得非常方便,同時也降低了開發者的心智負擔,讓開發者更專注于業務邏輯的實現。