我有一个来自后端的对象数组。我需要在每个对象上添加额外的数据来发送。
我输入的数据看起来像这样:
let arr = [
{
id: 1,
city: 'Orlando',
},
{
id: 2,
city: 'Miami',
},
{
id: 3,
city: 'Portland',
}
]
当数据通过Vue加载时,我需要让这些属性具有响应性。这意味着vue可以看到这些值何时发生变化,并调用适当的生命周期方法。Seewww.example. www.example.com
let newArr = [
{
id: 1,
city: 'Orlando',
state: 'Fl',
country: 'USA',
},
{
id: 2,
city: 'Miami',
state: 'Fl',
country: 'USA',
},
{
id: 3,
city: 'Portland',
state: 'OR',
country: 'USA',
}
]
在vanillaJS中,你不能只是循环并将属性附加到每个对象上,那么你会怎么做呢?
4条答案
按热度按时间2mbi3lxu1#
vue文档建议在追加属性时使用
Object.assign
,以使其具有响应性但是,这只是当你必须附加一个对象。
对于对象列表,这是初始化数据的方式
现在,对象数组中的所有对象属性都是响应式的
mtb9vblg2#
Vue还拦截了对
Array.push
的调用,所以你可能更喜欢这个:i34xakig3#
很晚了,但想到了提供答案,因为它可以在未来对其他人有用:
如果你想给一个对象数组中的某个对象添加一个额外的属性,那么你可以使用这样的方法:
qacovj5a4#
最好的方法是创建一个计算属性。
1.无店铺
一个Vue组件,像这样:
2.带商店(Vuex)