是因为用普通方法给对象添加的属性,不是响应式的,vue无法探测到,要用this.set( target, key, value ); target:要更改的数据源(可以是对象或者数组);key:要更改的具体数据;value :重新赋的值。 当你发现你给对象加了一个属性,在控制台能打印出来,但是却没有更新到视图上时,也许这个时候就需要用到this.set的功能就是解决这个问题的啦。 官方解释:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = 'hi'),你会发现vue官网是vue.set,我们现在讲的这个this.set(),因为他们俩的区别就涉及原理问题啦。