创建vue实例,会遍历data中的属性,由object.defineProperty将其转为getter和setter,并追踪其依赖,当属性被访问或发生改变时会通知相应的watcher程序段在组件渲染的过程钟将其标记为依赖,之后当依赖项的setter被调用时会通知相应的watcher程序重新计算使得组件发生改变。
双向绑定: 数据劫持+发布订阅模式,数据劫持利用object.defineProperty劫持对象的访问器,属性变化我们获取变化,发布订阅模式发布者和订阅者互不知道对方,发布者发布到订阅器中,订阅者订获取阅器中的内容。
object.defineProperty对于数组而言大部分操作时拦截不到的,只能通过函数重写解决
- v-on 给标签绑定函数,可以缩写为@,例如绑定一个点击函数 函数必须写在methods里面
- v-bind 动态绑定 作用: 及时对页面的数据进行更改, 可以简写成:冒号
- v-slot: 缩写为#, 组件插槽
- v-for 根据数组的个数, 循环数组元素的同时还生成所在的标签
- v-show 显示内容
- v-if 显示与隐藏
- v-else 必须和v-if连用 不能单独使用 否则报错
- v-text 解析文本
- v-html 解析html标签
Vue 处理指令时,v-for 比 v-if 具有更高的优先级
, 虽然用起来也没报错好使, 但是性能不高, 如果你有5个元素被v-for循环, v-if也会分别执行5次.
标签:订阅,劫持,Vue,基本原理,绑定,object,defineProperty From: https://www.cnblogs.com/sunzihui/p/16791572.html