<script type="text/javascript">
let data = {
name: '尚硅谷',
address: '北京',
}
//创建一个监视的实例对象,用于监视data中属性的变化
const obs = new Observer(data)
console.log(obs)
//准备一个vm实例对象
let vm = {}
vm._data = data = obs
function Observer(obj) {
//汇总对象中所有的属性形成一个数组
const keys = Object.keys(obj)
// console.log(keys)
//遍历
keys.forEach((k) => {
Object.defineProperty(this, k, {
get() {
console.log('获取结果')
return obj[k]
},
set(val) {
console.log(
`${k}被改了,我要去解析模板,生成虚拟DOM.....我要开始忙了`
)
obj[k] = val
},
})
})
}
</script>
模拟一个vue中简单的数据监测
最新推荐文章于 2024-11-03 19:51:25 发布