博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 vue 中使用 echarts 的详细步骤
阅读量:4095 次
发布时间:2019-05-25

本文共 1840 字,大约阅读时间需要 6 分钟。

年龄大了,果然脑力是跟不上了,这个图表已经用过几次了,每次还是或多或少的出现问题,现在把 echarts 在 vue 中的详细使用步骤记录下来,以备不时之需吧。

echarts 图表绘制的思路是:

1 获取一个有宽高的 DOM 元素 -->
2 初始化echarts实例(echarts.init) -->
3 指定图表的配置项和数据(option) -->
4 使用刚指定的配置项和数据显示图表(setOption(option))

1、安装

npm install echarts --save// 或yarn add echarts

2、 导入

按需导入

在需要使用图表的页面导入所需图表即可,使用方法是直接在项目代码中 require(‘echarts’) 得到 ECharts。声明一个echarts变量,直接使用变量即可。

默认使用 require(‘echarts’) 得到的是已经加载了所有图表和组件的 ECharts 包,因此体积会比较大,如果在项目中对体积要求比较苛刻,也可以只按需引入需要的模块。

如果只用到了柱状图,提示框和标题组件,在引入的时候也只需要引入这些模块,可以有效的将打包后的体积从 400 多 KB 减小到 170 多 KB。

// 引入基本模板let echarts = require('echarts/lib/echarts')// 引入柱状图组件require('echarts/lib/chart/bar')// 引入提示框和title组件require('echarts/lib/component/tooltip')require('echarts/lib/component/title')

全局导入

全局导入是在 main.js 中,导入并注册到全局

// 引入echartsimport echarts from 'echarts'Vue.prototype.$echarts = echarts

上面全局引入会将所有的echarts图表打包,导致体积过大,所以我觉得最好还是按需引入。

3、绘制图表

注意: 这里echarts初始化应在钩子函数mounted()中,这个钩子函数是在el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用。

如果一个页面需要绘制多个图表时,还要注意在 methods 中给每个图表绑定不同的方法,然后在 mounted 钩子中调用。

// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 绘制图表myChart.setOption({
title: {
text: 'ECharts 入门示例' }, tooltip: {
}, xAxis: {
data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] }, yAxis: {
}, series: [{
name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }]});

4、运行结果示例

在这里插入图片描述

5、注意事项

在以上例子中,我们获取dom的方式是通过document.getElementById(‘main’),也就是元素的id获取到dom的,这其实是会出现问题的。

代码如下

this.$echarts.init(document.getElementById('main'))

因为vue是单页面应用,如果将以上的组件使用两次,一个页面内id是不允许相同的,就会出现第一个组件正常显示,第二个组件无法显示。

解决方案

在vue中,我们可以通过另一种方式获取dom,vue有一个$refs的对象,只要将组件注册ref。

this.$echarts.init(this.$refs.main)或this.$echarts.init(this.$refs['main'])

通过以上方法获取dom,无论组件复用多少次,都不需要担心id唯一的问题了。

下边分享两个相关页面:、

如果小伙伴们在运行过程中遇到了其他问题,希望可以分享出来,大家一起解决。

转载地址:http://navii.baihongyu.com/

你可能感兴趣的文章
进程的地址空间概述
查看>>
Windows 窗口底层原理
查看>>
一种函数指针的运用
查看>>
Win32程序之进程的原理
查看>>
C++虚函数原理
查看>>
MySQL的索引
查看>>
今天,Python信息量很大!
查看>>
Flash 已死,Deno 当立?
查看>>
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
都无代码了,还要程序员吗?
查看>>
程序员:凭自己能力吃饭,有什么理由瞧不起?
查看>>
面试想拿 10K,HR 说我只配7k?
查看>>
副业过万的程序员都知道的网站有哪些
查看>>
那些人生“开挂”的程序员,都在干什么?
查看>>
影响科学圈的那些计算机代码
查看>>
乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
查看>>
乔布斯18岁求职信拍卖价22.24万美元,值吗?
查看>>
为何程序员总喜欢写技术博客,看完恍然大悟...
查看>>
假如计算机是中国人发明的,那代码应该这么写
查看>>