第三篇:Vue2 数据响应式与方法
1. 数据响应式原理与实现
响应式数据探秘
Vue2 的数据响应式系统是其核心特性之一,它通过 Object.defineProperty()
方法实现数据劫持,从而使得数据的变化能够自动反映到视图上。
Object.defineProperty()
方法可以在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。Vue2 利用这个方法对数据对象的每个属性进行拦截,为每个属性创建 getter
和 setter
函数。
当访问属性时,会触发 getter
函数,Vue2 利用这一点来收集依赖,即记录哪些地方使用了该属性。当属性值发生变化时,会触发 setter
函数,此时 Vue2 会通知所有依赖该属性的地方进行更新,从而实现视图的自动更新。例如:
let data = {