vue的data绑定 和 循环完成之后添加到data 的数据有什么不同?

现有需求是这样的需要创建一个表格,里面有月份和金额;因为每一条的字段都一样,在data里写12条一模一样的数据,感觉太冗余了,我就想写一个循环,循环10遍之后添加到data里进行渲染。但是问题出现了:
在data写12条数据你渲染时,只要在相应的地方加上数据的下标就可以,每条数据互不影响(不会产生双向绑定的效果);但是当你循环玩之后添加到data里,在dom渲染时,尽管写上下标还是会触发双向绑定效果,为什么?
怎么解决各位小哥哥小姐姐~~
//
data(){
return{
monthTableData:{
paymentType:"",
paymentMonth:'',
},
}
}
copyData(){
letlist=[];
for(vari=0;i<=5;i++){
for(letkinthis.monthTableData){
list.push(this.monthTableData);
}
}
this.monthTableDataNew=list;
},
湖上湖
浏览 1554回答 2
2回答

月关宝盒

对象是引用类型。list.push(this.monthTableData)不管你push多少个this.monthTableData,数组list里面的元素都是同一个对象,改变任意一个自然都改变了,可以用先深拷贝一次。或者:list.push({paymentType:"",paymentMonth:'',})

汪汪一只猫

不太清楚你说的双向绑定是哪里,是指绑定了data中的monthTableData?,那就把它放到copyData中就可以不要在data属性中放了,如下copyData(){let=monthTableData:{paymentType:"",paymentMonth:'',},letlist=[];for(vari=0;i
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript