echarts 是由百度开源的一个基于 Javascript 的,能提供直观、生动、交互、个性化定制的数据可视化图表库。
在 Vue 项目中使用,主要有两种方式:
直接全局引入整个 echarts
第一步、安装模块:
npm install echarts -S
第二步、引入框架:
// main.js
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
第三步、组件中使用:
<template>
<div id="myChart" style="width: 300px; height: 300px;"></div>
</template>
<script>
export default {
data () {
return {}
},
// 一定要在 mounted 中实例化 echarts 对象,因为我们要确保 dom 元素已经挂载到页面中
mounted(){
this.drawLine();
},
methods: {
drawLine(){
// 基于准备好的dom,初始化echarts实例
var myChart = this.$echarts.init(document.getElementById('myChart'))
// 绘制图表
myChart.setOption({
title: { text: '在Vue中使用echarts' },
tooltip: {},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
});
}
}
}
</script>
这种方式最简单,但是也有缺点,因为是引入整个 echarts,所以会导致项目体积很大。如果对代码包的体积要求比较高,可以采用下面的按需引入。
按需引入
这种只是将需要用到的 echarts 模块引入,从而可以减少整个项目包的体积。
第一步、按需引入图表组件:
// main.js
// 引入 echarts 主模块
// 这里之所以使用 require 而不是 import,是因为 require 可以直接从 node_modules 中查找,而 import 必须把路径写全
let echarts = require('echarts/lib/echarts');
// 引入柱状图组件
require('echarts/lib/chart/bar');
// 引入提示框组件、引入标题组件
require('echarts/lib/component/tooltip');
require('echarts/lib/component/title');
Vue.prototype.$echarts = echarts;
第二步、组件中使用:
<template>
<div id="myChart" style="width: 300px; height: 300px;"></div>
</template>
<script>
export default {
data () {
return {}
},
// 一定要在 mounted 中实例化 echarts 对象,因为我们要确保 dom 元素已经挂载到页面中
mounted(){
this.drawLine();
},
methods: {
drawLine(){
// 基于准备好的dom,初始化echarts实例
var myChart = this.$echarts.init(document.getElementById('myChart'))
// 绘制图表
myChart.setOption({
title: { text: '在Vue中使用echarts' },
tooltip: {},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
});
}
}
}
</script>
echarts 支持的可以按需引入的组件见下面的链接:[ https://github.com/apache/incubator-echarts/blob/master/index.js ]