Object.defineProperty
Vue2响应式基于Object.defineProperty
1 | const target = { |
Vue3响应式基于Proxy
1 | const target = { |
通过Proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写、添加、删除等
通过Reflect(反射):对源对象的属性进行操作
receiver:它保证传递正确的this给getter或者setter
Reflect会提供一个安全的提示程序来转发操作,并确保我们不会忘记与此相关的任何内容。