vue数组或对象直接赋值问题
data:{index:0,list: [{title:'名字1',},{title:'名字2',}],froms:{title:''}},methods:{change(){this.list[index] = this.froms;//这会导致改变froms的数据的时候,list[0]也会改变;//可使用JSON.pars
·
data:{
index:0,
list: [
{
title:'名字1',
},
{
title:'名字2',
}
],
froms:{
title:''
}
},
methods:{
change(){
this.list[index] = this.froms; //这会导致改变froms的数据的时候,list[0]也会改变;
//可使用JSON.parse(JSON.stringify(this.form))这种方式进行深拷贝赋值
this.$set(this.list,index,JSON.parse(JSON.stringify(this.form)))
//Object.assign(this.form)是浅拷贝,但是Object.assign({},this.form)是深拷贝
//注:当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝。
//但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝
this.$set(this.list,this.dialogIndex,Object.assign({},this.form))
//Object.assign(this.form,this.list[index]) 也可直接使用此方法赋值
//使用...扩展运算符也可以实现深拷贝
this.$set(this.list,this.dialogIndex, {...this.form})
}
}
更多推荐
已为社区贡献4条内容
所有评论(0)