Vue的双向数据绑定原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue的双向数据绑定原理相关的知识,希望对你有一定的参考价值。

参考技术A Vue 数据双向绑定主要是指:数据变化更新视图,视图变化更新数据

实现原理:采用数据监听、解析结合订阅者模式的方式,通过Object.defineProperty()来监听各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。从而实现数据的双向绑定

Vue 主要通过以下 4 个步骤来实现数据双向绑定的:

1、实现一个监听器 Observer:对数据对象进行遍历,包括子属性对象的属性,利用 Object.defineProperty() 对属性都加上 setter 和 getter。这样的话,给这个对象的某个值赋值,就会触发 setter,那么就能监听到了数据变化。

2、实现一个解析器 Compile:解析 Vue 模板指令,将模板中的变量都替换成数据,然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,调用更新函数进行数据更新。

3、实现一个订阅者 Watcher:Watcher 订阅者是 Observer 和 Compile 之间通信的桥梁 ,主要的任务是订阅 Observer 中的属性值变化的消息,当收到属性值变化的消息时,触发解析器 Compile 中对应的更新函数。

4、实现一个订阅器 Dep:订阅器采用 发布-订阅 设计模式,用来收集订阅者 Watcher,对监听器 Observer 和 订阅者 Watcher 进行统一管理。

以上是关于Vue的双向数据绑定原理的主要内容,如果未能解决你的问题,请参考以下文章

理解VUE2双向数据绑定原理和实现

vue中数据双向绑定的原理是啥?

前端面试被问到,vue实现数据双向绑定,原理是什么

vue数据双向绑定原理

vue2.x双向数据绑定原理

Vue2从入门到精通详解Vue数据双向绑定原理及手动实现双向绑定