可以把option写在computed里面,option里面的变量可以通过写在method或者watch里,变量变化eCharts就会重新渲染 以下是我自己的一段代码: computed里面的option: computed: { option () { return { legend: { show: true, bottom: 'bottom', data: this.typeStr }, grid: { // 调整图表与容器距离 left: '4%', right: '4%', containLabel: true }, tooltip: { trigger: 'axis' }, xAxis: { data: this.localDateStrAxis, type: 'category', min: 'datamin', boundaryGap: true, // x坐标轴两端留白 axisLine: { lineStyle: { color: '#f0f0f0' } }, axisTick: { lineStyle: { color: '#f0f0f0' } }, axisLabel: { color: '#5b5d61' } }, yAxis: this.yAxis, series: this.series } } } watch里面的内容: watch: { // 值更新时即时更新eCharts localValueAxis: { handler: function (n, o) { this.series = [] this.yAxis = [] for (let i = 0; i < n.length; i++) { this.series.push({ name: this.typeStr[i], type: 'line', data: n[i], yAxisIndex: i, areaStyle: { opacity: 0.3 } }) this.yAxis.push({ name: this.typeStr[i], type: 'value', axisLine: { show: false }, axisLabel: { color: '#787a7d' }, axisTick: { show: false }, splitNumber: 3, splitLine: { show: true } }) } }, deep: true } } 不用太过在意watch里的具体代码,逻辑就是:当localValueAxis这个值变化后我让eCharts的yAxis、series等重新赋值,vue自然就会重新渲染eCharts了。希望能帮到题主。
可以把option写在computed里面,option里面的变量可以通过写在method或者watch里,变量变化eCharts就会重新渲染
以下是我自己的一段代码:
computed里面的option:
watch里面的内容:
不用太过在意watch里的具体代码,逻辑就是:当localValueAxis这个值变化后我让eCharts的yAxis、series等重新赋值,vue自然就会重新渲染eCharts了。希望能帮到题主。