1.如何追踪变化
通过Object.defineProperty将对象属性转换为getter/setter(ES5无法shim,因此Vue不支持IE8及以下)
2.检测变化的注意事项
Vue不能检测对象属性的添加删除(受现代JavaScript限制),Vue在实例初始化时执行getter/setter转换,必须在data对象上存在才能转换
Vue不允许在已创建的实例上动态添加新的属性,但可使用set方法动态添加
3.异步更新队列
同一个watcher多次触发,只会一次推入队列,在数据变化之后立即使用Vue.nextTick(callback)回调函数在DOM更新后调用











网友评论