Чтобы сделать значение или объект реактивным в Vue, его необходимо правильно инициализировать, обычно это либо свойство prop
, data
, либо значение computed
.
Vue не видит изменений в вашей переменной db
, поскольку она не была инициализирована как одна из них.
Для массива табличных данных вы можете инициализировать его следующим образом:
data () {
return {
items : [
['23/03/2020', 2309.99, 2332.25],
['24/03/2020', 2343,30, 2424.62],
['25/03/2020', 2424.62, 2519.56]
],
}
},
Для редактирования данных для отображения в шаблоне мы можем использовать вычисляемое свойство, которое будет обновляться в любое время this.items
изменения:
computed: {
tableData () {
return this.items.map(x=>{
x.push((x[2]-x[1]).toFixed(2)) //adds difference column
return x
})
},
}
Теперь мы можем внести изменения в items
с помощью метода, и он все обновит:
methods: {
addRow () {
lastRow = this.items.slice(-1)[0]
this.items.push(
[lastRow[0] ,lastRow[2], lastRow[2] + 10]
)
}
},
вот рабочий пример для таблицы: https://jsfiddle.net/ellisdod/fjqsbtv1/
для диаграммы см. Мой предыдущий ответ