对vue.js 的响应式的原理的理解,有助于更加灵活的使用vue,和避开一些坑
所以了解其运行原理十分重要
vue 运行机制使用object.definePorperty 将变化的data ,转化为getter/setter.
因为使用了es5的特性, 也就是Vue不支持IE8及其以下版本的浏览器 的原因。
变化检测
1·(Object.observe的废弃),Vue不能检测对象属性的添加或删除,因此属性必须在data对象上,但是可以使用Vue.set(Object,key,value) 来将响应属性添加到对象上 (vm.$set 实例方法Vue.set全局方法)。
2.使用(Object.assign() 或者_.extend())方法添加属性,不会触发更新,这时3建议使用oldobject=Object.assign({},oldobject,{key1:value1,key2:value2})
3.Vue不允许动态添加 根级响应式属性,所有初始实例必须声明(空值也需要)
4.在数据变化之后立即使用 vm.$nextTick(calllback) 实现在Dom更新后操作