$set是Vue的一个方法,用于动态更改Vue实例对象中的数据。在Vue中,数据驱动视图更新,当数据改变时,视图也会随之更新。但当我们需要动态添加或删除数据时,Vue不能自动更新,这个时候就需要使用$set。
//语法 Vue.set(object, key, value) 或 this.$set(object, key, value)
$set有两个参数:object为需要更改的对象,key为该对象中需要更改的属性名,value为该属性需要更改成的新值。
$set方法的主要作用是向Vue实例添加响应式属性。在Vue中,只有在Vue实例创建时存在的属性才能被监听。因此,如果我们需要添加一个新的响应式属性,需要使用$set。
//示例 Vue.set(vm.someObject, 'b', 2) //或 this.$set(this.someObject, 'b', 2)
上述代码可以向Vue实例的someObject对象中添加一个b属性,并且该属性是响应式的。
除了添加响应式属性,$set还可以通过修改已经存在的属性值来触发视图的更新。
//示例 Vue.set(vm.someObject, 'a', 2) //或 this.$set(this.someObject, 'a', 2)
上述代码可以将Vue实例someObject对象中的a属性的值更改为2,并且由于该属性值改变,Vue会自动更新视图。
当然,如果需要删除一个对象中的属性,我们也可以使用$set方法。
//示例 Vue.set(vm.someObject, 'a', null) //或 this.$set(this.someObject, 'a', null)
上述代码将Vue实例someObject对象中的a属性删除,并且同样会触发视图的更新。
总之,$set可以让我们动态修改Vue实例中的数据,从而实现更加灵活的业务逻辑。除了$set,Vue还提供了一些其他的方法,例如:$delete、Vue.extend等,可以让我们更好地实现数据的操作和管理。