sync修饰符

和 v-model类似   都会解析成两部分   

v-model 是一个语法糖    v-model ="data"会解析成  :value="data"  和@input="data=$event"事件   

sync修饰符会解析成两部分  :visible.sync="visible" --->  :visible="visible" 和 @update:visible="visible=$event" 事件  

 区别:v-model  在组件上 只能使用一次  而 sync可以使用多次

Object.getOwnPropertyDescriptor()  ----获取某个对象的属性描述信息   

writable修改   删除configurable    枚举enumerable   

设置数据(写数据)set(val){}            获取数据(读数据)get(){} ---有返回值    通过外部变量控制数据的读写    ------>简易的数据响应式原理   

多层数据的响应式原理:递归

Object.defineProperty()     ------------>定义/修改属性值  

  

1---   vue2 中用的是 Object.defineProperty()     进行数据劫持   虽然Object.defineProperty()    支持通过索引对 数组进行监听和修改   但是由于 性能问题 vue2没有采用 

且对  对象新增无法劫持   vue 双向绑定的缺陷:数组的下标和长度 无法劫持   对象的新增属性  对象的属性删除的变化  无法劫持 因为已经遍历完了 再修改 无法生效了

2---   Object.defineProperty() 对于数组的push 等修改数组的 方法    不是响应式的(数组本事响应式的方法是不支持的)

但是  vue中 重写了数组的push 等7个方法   支持了修改数组 后   数据的响应式

3------Vue3中采用的 Proxy 来进行数据响应式处理     对对象新增属性可以劫持      

原文地址:https://www.cnblogs.com/ndh074512/p/15143231.html