大家好。有一个包含对象的数组data:
data() {
return {
products: [
{
id: 0,
count: 1,
price: 1999
},
{
id: 1,
count: 1,
price: 2999
}
]
}
}
我怎样才能改变county属性this.products[0],同时仍然是反应性的?那些。我有这样的方法:
incrementProduct(i) {
//инкремент количества добавленного продукта
Vue.set(this.products, i, this.products[i].count++);
}
但现在这将更改为products索引i为的对象this.products[i].count++。我需要它来更改属性count。怎么做?
中声明的任何数据
data都已经是反应性的。如果你改变一个数组或向一个对象添加属性,你就会破坏反应性。如果您正在按索引更改数组元素并且此属性最初存在于对象中(您没有添加任何新内容),您可以安全地按索引访问并更改此属性:
不需要使用
Vue.set(已弃用),现在有了。Vue.prototype.$set原因是“observables”数组(observed)中的对象。仅当您使用pushand方法pop或将新属性添加到数组中的对象时,才会发生突变。