、、、、、、、、、、、仅对以前所学做复习记录使用、、、、、、、、、
1、data中的数据,在vue底层会有一个观察者observe对象监测,观察者通过Object.defineProperty进行data对象数据劫持
// 这是一个简易版的观察者,只能处理根数据,不能处理数据中的数据;例如:
let data = {
person:{name:‘wyy’}
arr:[ ]
}
// 观察者
function Observe(obj) {
// 先取出data中的所有键
let keys = Object.keys(obj)
// 然后进行数据的get、set的劫持监测
keys.forEach(k => {
Object.defineProperty(this, k, {
get() {
return obj[k]
},
set(val) {
obj[k] = val
}
})
})
}
let data = {
name: "王丽坤",
age: 19
}
let obs = new Observe(data)
let vm = { }
vm._data = data = obs
建立一个vue空对象,let vm = { }
将数据收集到vm对象上的_data中,即vm._data = data = obs