vue中echarts调用接口_在Vue中使用echarts的两种方式

准备:使用vue-cli脚手架

如果你已经有自己的项目,可以跳过这一步。

npm下载vue-cli脚手架

(写这篇文章时用的还是vue-cli2)

npm install -g @vue/cli

初始化一个项目

vue init webpack hello

然后等待它安装完所有的依赖包就可以了。

下面我们开始引入echarts。

方式一、直接引入echarts

先npm安装echarts

npm install echarts --save

开发:

main.js

import myCharts from './comm/js/myCharts.js'

Vue.use(myCharts)

myCharts.js

/**

* 各种画echarts图表的方法都封装在这里

* 注意:这里echarts没有采用按需引入的方式,只是为了方便学习

*/

import echarts from 'echarts'

const install = function(Vue) {

Object.defineProperties(Vue.prototype, {

$chart: {

get() {

return {

//画一条简单的线

line1: function (id) {

this.chart = echarts.init(document.getElementById(id));

this.chart.clear();

const optionData = {

xAxis: {

type: 'category',

data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

},

yAxis: {

type: 'value'

},

series: [{

data: [820, 932, 901, 934, 1290, 1330, 1320],

type: 'line',

smooth: true

}]

};

this.chart.setOption(optionData);

},

}

}

}

})

}

export default {

install

}

HelloWorld.vue

export default {

name: 'HelloWorld',

data () {

return {

}

},

mounted() {

this.$chart.line1('chart1');

}

}

#chart1 {

width: 300px;

height: 300px;

}

先npm安装vue-echarts

npm install echarts vue-echarts

开发:

除了全量引用echarts,我们还可以采用按需引入的方式

main.js

import ECharts from 'vue-echarts'

import 'echarts/lib/chart/line'

Vue.component('chart', ECharts)

HelloWorld.vue

export default {

name: 'HelloWorld',

data () {

return {

orgOptions: {},

}

},

mounted() {

this.orgOptions = {

xAxis: {

type: 'category',

data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

},

yAxis: {

type: 'value'

},

series: [{

data: [820, 932, 901, 934, 1290, 1330, 1320],

type: 'line',

smooth: true

}]

}

}

}

到这里就结束了。试过打包了,没报错~

选择

两种方式都能实现大部分需求。

个人认为:

如果你的需求是定制化比较少的,基本上绑定数据然后展示就行了,或者你对echarts还不是很熟悉的,那么vue-echarts是一个不错的选择;

如果你的需求是定制化多的,比如需要特殊处理鼠标事件什么的(当然vue-echarts也可以,但我不喜欢同时看两份API,多累呀),又或者你已经对echarts比较熟悉了(那你就不会看这篇文章了哈哈),你会发现Echarts官方文档写得真是清晰明了,直接用着也很爽呀完全没问题呀,那么我会更倾向于直接使用echarts。

我刚开始一两个项目的时候用vue-echarts很舒服,上手很快,但后面做得多了,我觉得还是直接写更能满足我,Anyway,看个人选择吧!


版权声明:本文为weixin_42339991原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。