为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

对象是引用类型。
list.push(this.monthTableData)
不管你push多少个this.monthTableData,数组list里面的元素都是同一个对象,改变任意一个自然都改变了,可以用先深拷贝一次。或者:
list.push({
paymentType:"",
paymentMonth:'',
})
                            
查看完整回答
反对 回复 2019-05-12
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

不太清楚你说的双向绑定是哪里,是指绑定了data中的monthTableData?,那就把它放到copyData中就可以不要在data属性中放了,如下copyData(){
let=monthTableData:{
paymentType:"",
paymentMonth:'',
},
letlist=[];
for(vari=0;i<=5;i++){
for(letkinmonthTableData){
list.push(monthTableData);
}
}
this.monthTableDataNew=list;
},
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 1553 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信