Vue3使用vue-echarts的案例
安装
npm install echarts vue-echarts
使用 dome Vue3 :->
main.js
import { createApp } from 'vue'
const app = createApp(App)
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import ECharts from 'vue-echarts'
import * as echarts from 'echarts/core';
import { CanvasRenderer } from 'echarts/renderers';
import { LineChart } from 'echarts/charts';
import {
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
LegendComponent
} from 'echarts/components';
echarts.use([
CanvasRenderer,
LineChart,
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
LegendComponent
]);
app.component('v-chart', ECharts)
app.use(createPinia())
app.use(router)
app.mount('#app')
组件内部
<template>
<v-chart class="chart" :option="option" />
<button @click="updateChartData">更新数据</button>
</template>
<script setup>
import { ref } from 'vue'
import * as echarts from 'echarts';
const option = ref({
title: {
text: 'Referer of a Website',
subtext: 'Fake Data',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: '50%',
data: [
{ value: 1048, name: 'Search Engine' },
{ value: 735, name: 'Direct' },
{ value: 580, name: 'Email' },
{ value: 484, name: 'Union Ads' },
{ value: 300, name: 'Video Ads' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
});
function updateChartData() {
option.value.series[0].data = [
{ value: Math.random() * 1000, name: 'Search Engine' },
{ value: Math.random() * 1000, name: 'Direct' },
{ value: Math.random() * 1000, name: 'Email' },
];
}
</script>
<style>
.chart {
width: 600px;
height: 400px;
}
</style>