Vue.js 是一款優(yōu)秀的前端 MVVM 框架,而 ECharts 則是一款優(yōu)秀的前端可視化圖表庫。兩者結(jié)合起來可以實(shí)現(xiàn)如魚得水的數(shù)據(jù)可視化,讓用戶更加直觀地了解數(shù)據(jù)。在使用 Vue.js + ECharts 的組合前,需要先引入兩個(gè)庫。
import Vue from 'vue'
import ECharts from 'echarts'
Vue.prototype.$echarts = ECharts
在將 ECharts 引入 Vue.js 后,需要考慮如何在 Vue.js 中使用 ECharts。我們將 ECharts 分成兩個(gè)模塊使用:容器與數(shù)據(jù)。
首先,我們需要定義容器,即給 ECharts 分配一個(gè)位置來顯示圖表。在 Vue.js 中,可以通過 v-for 或者嵌套組件來創(chuàng)建多個(gè)容器,每個(gè)容器對應(yīng)一個(gè)圖表。
<template>
<div>
<div id="chart1" style="width: 400px; height: 400px"></div>
<div id="chart2" style="width: 400px; height: 400px"></div>
</div>
</template>
在模板中定義好容器后,我們需要將容器與數(shù)據(jù)綁定起來。在 Vue.js 中,可以使用 watch 或者 computed 來監(jiān)聽數(shù)據(jù)的變化,從而實(shí)現(xiàn)動(dòng)態(tài)更新圖表。
<script>
export default {
data() {
return {
chart1Data: [5, 20, 36, 10, 10, 20],
chart2Data: [12, 30, 20, 32, 25, 11]
}
},
watch: {
chart1Data() {
this.drawChart1()
},
chart2Data() {
this.drawChart2()
}
},
methods: {
drawChart1() {
const chart = this.$echarts.init(document.getElementById('chart1'))
const option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
},
yAxis: {
type: 'value'
},
series: [{
data: this.chart1Data,
type: 'bar'
}]
}
chart.setOption(option)
},
drawChart2() {
const chart = this.$echarts.init(document.getElementById('chart2'))
const option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
},
yAxis: {
type: 'value'
},
series: [{
data: this.chart2Data,
type: 'line'
}]
}
chart.setOption(option)
}
},
mounted() {
this.drawChart1()
this.drawChart2()
}
}
</script>
通過以上代碼,我們可以看到實(shí)現(xiàn) Vue.js + ECharts 數(shù)據(jù)可視化的全過程。首先定義容器,在數(shù)據(jù)更新時(shí)實(shí)時(shí)繪制圖表。通過監(jiān)聽數(shù)據(jù)的變化,實(shí)現(xiàn)動(dòng)態(tài)更新圖表。最終展示一個(gè)完整的數(shù)據(jù)可視化圖表頁面。