用处
提示💡
用于添加一个响应式属性。
由于 Vue2 中的 Object.defineProperty 在实现数据监听上有一些缺陷,this.$set()
就是为了解决这一缺陷而产生的。
当我们想让一个数据的变化变为响应式时,可以使用 this.$set()
向响应式对象中添加一个属性,来确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = ‘hi’)。
使用场景
当你发现你给对象加了一个属性,在控制台能打印出来,但是却没有更新到视图上时,可以使用this.$set()
方法。
用法 :this.$set( target, key, value )
- target:需要添加属性的对象。
- key:需要添加的属性名。
- value:需要添加的属性值。