Вы уже отслеживаете свои значения расходов, поскольку используете v-model
для значения каждого элемента в массиве expenses
. Хотя, чтобы убедиться, что он преобразуется в число, я бы использовал v-model.number="expense.expensesValue"
.
. Для получения суммы вы можете использовать свойство computed
и функцию уменьшения.
new Vue({
el: "#app",
data: {
expenses: [{
expensesValue: 0
}]
},
methods: {
addInputs(){
this.expenses.push({
expensesValue: 0
})
}
},
computed: {
total() {
return this.expenses.reduce((acc, curr) => {
acc += curr.expensesValue;
return acc;
}, 0);
}
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<h2>Todos:</h2>
<div v-for="(expense, idx) in expenses" :key="idx">
<input v-model.number="expense.expensesValue" type="number"> - {{expense.expensesValue}}
</div>
<p>total {{ total }}</p>
<button @click="addInputs()">Add</button>
</div>