你们好,我是前端鼓励师maybe,做为前端,掌握vue框架能够说是必须滴,那么vue的双向数据绑定原理想必是要深刻了解的一个知识点,那么你了解的双向绑定原理又是怎么样的呢?无论怎样,请给我一首歌的时间,我给你用官方的口吻讲解一波双向绑定的整个过程,剩下的半首歌时间我给你用我本身整理的话讲解一波,但愿你看完个人文章,对vue的双向数据绑定原理有跟进一步了解和理解!前端
具体步骤vue
第一步:
须要observer的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter这样的话,给这个对象的某个值赋值,就会触发setter,那么久能监听到了数据变化jquery
第二步:
compile解析横板令,将模板中的变量替换成数据.而后初始化渲染页面视图,并将每一个令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变更,收到通知,更新视图面试
第三步:
Watcher订阅名是 observer和 Compile之间通讯的桥梁,主要作的事情是:
1.在自身实例化时往属性订倒器(dep)里面添加本身
2.自身必须有一个 update()方法
3.待属性变更dep.notice()通知时,能调用自身的update()方法,并触发Compile中定的回调,则功成身退设计模式
第四步:
MVVM做为数据绑定的入口,合 observer、 Compile和 Watcher三者,经过 Observer来监听本身的model数据変化,经过 Compile来解析编译模板指令,最终利用 Watcher搭起 Observer和 Compile之间的通讯标梁,达到数据变化->视图更新新:视图交互变化(Input)->数据mode变动的双向绑定效果。框架
以上即是比较官方的口吻讲解vue的双向数据绑定原理,那么接下来,说说我对双向数据绑定原理的理解,要理解vue的双向数据绑定原理那就必须先理解MVC与MVVM模式的区别而后再理解vue的单项数据绑定原理,接下来给你们以图片和文字结合的方式讲解下:dom
1.MVC和MVVM的区别:函数
2.vue的单项单项数据绑定原理:学习
3.vue双向数据绑定原理
vue的双向数据绑定原理,当页面有一个input元素咋办,这时候v-model双向数据绑定就派上用场了,可是v-model双向数据绑定原理又是怎样的呢?请看下图:设计
通过上面一波骚操做,但愿你们能在vue的面试中遇到vue双向数据绑定原理的问题,可以对答如流,答得尽可能完整一点,若是我还有哪些地方漏了的,请在评论区指出,相互借鉴学习!