用处

提示💡

用于添加一个响应式属性。

由于 Vue2 中的 Object.defineProperty 在实现数据监听上有一些缺陷,this.$set() 就是为了解决这一缺陷而产生的。

当我们想让一个数据的变化变为响应式时,可以使用 this.$set() 向响应式对象中添加一个属性,来确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = ‘hi’)。

使用场景

当你发现你给对象加了一个属性,在控制台能打印出来,但是却没有更新到视图上时,可以使用this.$set()方法。

用法 :this.$set( target, key, value )

  • target:需要添加属性的对象
  • key:需要添加的属性名
  • value:需要添加的属性值

扩展阅读