为data中的某一个对象添加一个属性: this.student.age = 15
如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。
![](https://i-blog.csdnimg.cn/blog_migrate/d1a8f0fe504811f42b916c6090b564bf.jpeg)
可以看出原来的name属性是有get 和 set方法的,而新增的age属性是没有的。
新增的age属性并没有同步渲染到页面上,这是因为Vue最初实例化的时候,student中没有属性age,故而如果用 this.student.age 添加属性的话Vue不会把他作为响应式监听。
而使用 this.$set
新添加的属性值才会被Vue监听到并且同步渲染到页面上:this.$set(this.student,'age', 16)
总结:$set的作用就是给对象新增属性,且使得新增属性具有响应式。