【发布时间】:2020-11-25 16:25:13
【问题描述】:
我仍然不明白为什么某些更改数据的方式有效,而其他方式则无效。我试过这个例子:
watch: {
'$store.state.linedata': function() {this.redraw()}
},
methods: {
redraw() {
this.chartOptions.series[0].data = this.$store.state.linedata
}
},
data() {
return {
chartOptions: {
chart: {
type: this.type
},
series: [{
data: this.$store.state.linedata,
name: "Test Series",
color: this.color
}]
}
}
}
此设置有效,每当我更改商店中的 linedata 时,组件都会更新。但是,对我来说,像这样更新数据会更直观,而无需引用this.chartOptions.series[0].data:
redraw() {
this.$store.state.linedata = [1,2,3,4,5,6]
}
这将正确更新状态,但不会导致使用新数据更新组件。为什么第二种方法不起作用,我的第一种方法是正确的方法吗?我觉得我在这里误解了一些核心概念。最佳实践是什么样的?
谢谢!
【问题讨论】:
标签: javascript arrays vue.js vuex