浅析Vue 数据响应式

79 阅读1分钟

当我们创建一个vue实例时,vue会使用Object.defineProperty将其中的data选项的内容转化为getter/setter,目的是为了vue能实现对数据的监听,然后进行实时响应更新UI,这里vue实例相当于一个代理的作用,对于数组和对象可以采用Vue.set(object, propertyName, value)或者vm.$set(vm.items, indexOfItem, newValue)方法来实现向嵌套对象添加响应式属性,其中数组的一些原生方法也经过了vue作者的封装,同样可以触发视图更新,总之vue实例将data的内容通过一定方法的处理使得vue实例可以代理和监听data内容的变化。以此来触发响应和更新。