<el-input v-model="addForm.list[index].money" @input="moneyChange">
一、最好的写法,用@input事件,获取需要监听的数据
data () {
return {
moneyCount:0
}
}
methods: {
amountChange() {
this.moneyCount = 0
this.addForm.expenseCosts.forEach(e => {
this.amountCount = numberAdd(this.amountCount,e.amount,2)
})
},
//数据总和方法
numberAdd(number1, number2, number3) {
return (Number(Number(number1) * 1000000 + Number(number2) * 1000000) / 1000000).toFixed(number3);
}
}
二、普通监听某个值,循环数组对象的值获取不到,只能使用监听数组对象.
任何数组对象元素被触发时,都会执行监听事件,造成性能损耗.
watch: {
'addForm.list':{
immediate: true, //初始值执行handler函数了
deep:true, //深度监听
handler(data) {
let sum = data.map(e=>{
let i = 0;
return i += Number(e.money)
})
data.forEach(e => {
this.moneyCount = numberAdd(this.moneyCount,e.money)
})
this.moneyCount = eval(sum.join("+")).toFixed(2);
}
}
},