vue双向绑定
vue数据双向绑定
想要知道vue的双向绑定,我们需要从vue的实例创建说起
首先vue会将vue文件解析,生产抽象语法树。
然后会运行一次render函数
然后数据进行初始化
初始化期间会将data中的属性利用属性描述符进行递归遍历,生成对应的数据劫持
这也是为什么如果属性没有写在data中,就必须使用$set进行属性添加的原因,否则就会失去数据的响应式
在利用Object.defineProperty生成数据劫持期间,在get中会进行依赖收集,在set中会进行任务派发
每当数据发生变化后,就会执行set,重新运行render函数实现数据的双向绑定