直接给未定义对象赋值
vue中数据和视图绑定的实现核心是通过Object.defineProperty(),在初始化的时候,会通过遍历给所有数据添加数据监听器,这一批数据是没问题的。
但是如果是在方法中直接对不存在的对象属性进行赋值,vue是检测不到的,不会对视图进行重新渲染。vue的实现方法:给响应式对象添加了__ob__这个属性。【数据监听器】
没有的话,也可以注意,vue给数组中定义了7个可以触发页面渲染的方法:
pop、push、reverse、shift、sort、splice、unshift
不是通过这7个方法在数组中加新数据也会有问题
可以通过Vue.set进行解决
Vue.set对数组是通过splice增加依赖
而对对象,则是判断对象中是否存在此属性,直接赋值或者添加依赖后再赋值。确定此对象以后都会触发视图更新。