Vue 数据代理

什么是数据代理?

  通过一个对象代理对另一个对象中属性的操作(读/写)

 

let obj = { x: 100 }
let obj2 = { y: 200 }

Object.defineProperty(obj2, 'x', {
    get() {
        return obj.x 
    }, 
   set(value) {
       obj.x = value
   }
})

vue 中的 data 属性传入后会变成 _data

1. Vue 中的数据代理:

  通过 vm 对象来代理 data 对象中属性的操作(读/写)

2. Vue 中数据代理的好处:

  更加方便的操作 data 中的数据

3. 基本原理:

  通过 Object.defineProperty 把 data 对象中所有属性添加到 vm 上。

  为每一个添加到 vm 上的属性,都指定一个 getter / setter。

  在 getter/setter 内部去操作(读/写)data 中对应的属性。

 

posted @ 2021-12-04 15:11  我就尝一口  阅读(88)  评论(0编辑  收藏  举报