Vue使用Echarts的三種實(shí)現(xiàn)方式
一、原始方法直接使用
1、安裝ECharts:
npm install echarts --save
2、創(chuàng)建一個(gè)Vue公共組件 EChart.vue:
<template>
<div :style="{width: '100%', height: '300px'}" ref="chart"></div>
</template>
<script>
import echarts from 'echarts'
export default {
name: 'EChart',
props: {
option: {
type: Object,
required: true
}
},
data() {
return {
chartInstance: null
}
},
watch: {
option: {
handler(newOption) {
if (this.chartInstance) {
this.chartInstance.setOption(newOption);
}
},
deep: true
}
},
mounted() {
this.chartInstance = echarts.init(this.$refs.chart);
this.chartInstance.setOption(this.option);
},
beforeDestroy() {
if (this.chartInstance) {
this.chartInstance.dispose();
}
}
}
</script>3、使用EChart.vue組件
<template>
<div>
<e-chart :option="chartOption"></e-chart>
</div>
</template>
<script>
import EChart from './EChart.vue'
export default {
components: {
EChart
},
data() {
return {
chartOption: {
// ECharts 配置項(xiàng)
}
}
}
}
</script>
這個(gè)例子中,EChart.vue組件通過props接收ECharts的配置項(xiàng)option,并在組件的mounted生命周期鉤子中初始化ECharts實(shí)例,在watch中監(jiān)控option的變化,并更新圖表。
在父組件中,你可以通過傳遞不同的chartOption來(lái)更新圖表。
這樣做的好處是,你可以在多個(gè)地方復(fù)用這個(gè)圖表組件,并通過傳遞不同的配置來(lái)定制圖表的顯示。同時(shí),組件內(nèi)部處理了ECharts實(shí)例的創(chuàng)建和銷毀,使得使用更加簡(jiǎn)潔和高效。
二、使用vue-echarts
vue-echarts (https://github.com/ecomfe/vue-echarts)是ECharts 的 Vue.js 組件,基于 ECharts v4.1.0+ 開發(fā),依賴 Vue.js v2.2.6+,意思就是可以直接把echarts實(shí)例當(dāng)中vue中的組件來(lái)使用,不用每次都獲取dom、掛在dom,輕松使用echarts的所用功能。
npm install echarts vue-echart
main.js中引入
import ECharts from 'vue-echarts'
// 注冊(cè)全局的組件
Vue.component('vChart', ECharts)
vue中使用,直接添加options 數(shù)據(jù)即可。
<template>
<div class="page">
<el-card>
<!-- 柱狀圖+折線圖 -->
<vChart class="chart3" :options="barOptions" />
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
barOptions: {
color: ["#5094FF", "#64DAAC", "#FAC84A"],
grid: {
top: "15%",
bottom: "20%",
right: "5%",
left: "5%"
},
tooltip: {},
legend: {
data: ["合格數(shù)", "超標(biāo)數(shù)", "合格率", "超標(biāo)率"],
top: "0"
},
xAxis: {
type: "category",
data: ["04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19"]
},
yAxis: {
// name: '合格率(%)',
// nameLocation: 'middle',
type: "value"
// nameTextStyle: {
// fontSize: '0.072917rem',
// color: '#999999'
// }
},
series: [
{
name: "合格數(shù)",
type: "bar",
barWidth: "15%",
barGap: "5%",
data: [20, 232, 441, 654, 770, 530, 410]
},
{
name: "超標(biāo)數(shù)",
type: "bar",
barWidth: "15%",
data: [120, 482, 791, 834, 590, 930, 710]
},
{
name: "合格率",
type: "line",
data: [420, 332, 291, 654, 590, 330, 810]
},
{
name: "超標(biāo)率",
type: "line",
data: [120, 232, 391, 854, 590, 730, 410]
}
]
}
};
}
};
</script>
三、使用v-charts
v-charts(https://v-charts.js.org/#/) 是基于vue2二次封裝的圖表組件庫(kù),功能沒有echarts多 但也夠用了,官網(wǎng)很詳細(xì),這里用一個(gè)官網(wǎng)例子說明問題
<template>
<ve-histogram :data="chartData" :settings="chartSettings"></ve-histogram>
</template>
<script>
export default {
data () {
this.chartSettings = {
showLine: ['下單用戶']
}
return {
chartData: {
columns: ['日期', '訪問用戶', '下單用戶', '下單率'],
rows: [
{ '日期': '1/1', '訪問用戶': 1393, '下單用戶': 1093, '下單率': 0.32 },
{ '日期': '1/2', '訪問用戶': 3530, '下單用戶': 3230, '下單率': 0.26 },
{ '日期': '1/3', '訪問用戶': 2923, '下單用戶': 2623, '下單率': 0.76 },
{ '日期': '1/4', '訪問用戶': 1723, '下單用戶': 1423, '下單率': 0.49 },
{ '日期': '1/5', '訪問用戶': 3792, '下單用戶': 3492, '下單率': 0.323 },
{ '日期': '1/6', '訪問用戶': 4593, '下單用戶': 4293, '下單率': 0.78 }
]
}
}
}
}
</script>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue?3.0使用element-plus按需導(dǎo)入方法以及報(bào)錯(cuò)解決
Vue3是不能直接使用Element-ui了,需要換成Element-plus,下面這篇文章主要給大家介紹了關(guān)于vue?3.0使用element-plus按需導(dǎo)入方法以及報(bào)錯(cuò)解決的相關(guān)資料,需要的朋友可以參考下2024-02-02
vue2.0 下拉框默認(rèn)標(biāo)題設(shè)置方法
今天小編就為大家分享一篇vue2.0 下拉框默認(rèn)標(biāo)題設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-08-08
vue修改proxyTable解決跨域請(qǐng)求,報(bào)404的問題及解決
這篇文章主要介紹了vue修改proxyTable解決跨域請(qǐng)求,報(bào)404的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)scrollIntoView()使用案例
這篇文章主要介紹了vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)scrollIntoView()使用案例,文中結(jié)合實(shí)例代碼介紹了vue錨點(diǎn)跳轉(zhuǎn)的三種方式(頁(yè)內(nèi)跳轉(zhuǎn),跨頁(yè)跳轉(zhuǎn),函數(shù)跳轉(zhuǎn)),需要的朋友可以參考下2023-07-07
vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)及滾動(dòng)監(jiān)聽的方法
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)及滾動(dòng)監(jiān)聽的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
vue.config.js中devServer.proxy配置說明及配置正確不生效問題解決
Vue項(xiàng)目devServer.proxy代理配置詳解的是一個(gè)非常常見的需求,下面這篇文章主要給大家介紹了關(guān)于vue.config.js中devServer.proxy配置說明及配置正確不生效問題解決的相關(guān)資料,需要的朋友可以參考下2023-02-02
vue3 emit is not a function問題及解決
這篇文章主要介紹了vue3 emit is not a function問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09

