vue3在setup中如何向响应式数组中的每个对象添加相同属性属性
时间: 2023-05-20 22:03:55 浏览: 134
您可以使用 Vue.set 或者 spread operator 来向响应式数组中的每个对象添加相同属性。以下是使用 Vue.set 的示例代码:
```
import { reactive, Vue } from 'vue';
export default {
setup() {
const items = reactive([
{ name: 'item1' },
{ name: 'item2' },
{ name: 'item3' },
]);
Vue.set(items[0], 'age', 20);
Vue.set(items[1], 'age', 30);
Vue.set(items[2], 'age', 40);
return {
items,
};
},
};
```
在上面的代码中,我们使用 Vue.set 方法向每个对象添加了一个名为 age 的属性,并分别赋值为 20、30 和 40。
另外,您也可以使用 spread operator 来实现相同的效果,示例代码如下:
```
import { reactive } from 'vue';
export default {
setup() {
const items = reactive([
{ name: 'item1' },
{ name: 'item2' },
{ name: 'item3' },
]);
const newItems = items.map(item => ({
...item,
age: 20,
}));
return {
items: newItems,
};
},
};
```
在上面的代码中,我们使用 map 方法遍历原始的响应式数组,并使用 spread operator 向每个对象添加了一个名为 age 的属性,并赋值为 20。最后,我们将新的数组作为响应式对象返回。
阅读全文