Vue.set
方法用于在 Vue 实例中的响应式对象中设置属性值。这个方法可以确保新添加的属性也是响应式的,并且能够触发视图更新。以下是 Vue.set
方法的使用方式:
对象使用
全局方法
Vue.set(vm.userInfo, "address", "beijing");
实例方法
vm.$set(vm.userInfo, "address", "beijing");
数组使用
全局方法
Vue.set(vm.userInfo, 2, 10);
实例方法
vm.$set(vm.userInfo, 3, 8);
参数说明
-
target
:要更改的数据源,可以是一个对象或数组。 -
key
:要更改的具体数据,如果是对象则是一个属性名,如果是数组则是一个索引。 -
value
:重新赋的值。
注意事项
-
如果直接修改数组中的数据,而数组的长度没有变化的话,将不会在界面上进行数据的同步更新。
-
Vue.set
只能用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性。
示例代码
const app = new Vue({
el: '#app',
data: {
list: ['apple', 'orange', 'banana'],
info: { name: 'lisi', age: 12 }
},
methods: {
addSex() {
Vue.set(this.user, 'sex', '女');
}
}
});
以上是 Vue.set
方法的基本用法和注意事项。