以下的例子,使用 JS 内建 proxy, 当 data
对象中的 message
值改变时,longMessage
值也随之改变,由此实现 reactivity :
const data = {
message: "Hello",
longMessage: "Hello! World!",
};
const handler = {
set(target, key, value) {
if (key === "message") {
target.longMessage = value + " World!";
}
target.message = value;
},
};
const proxy = new Proxy(data, handler);
proxy.message = "Hello!!!!!!!!!!!";
console.log(proxy.longMessage);
// Hello!!!!!!!!!!! World!
Vue 使用了类似的方法实现响应性。