在vue中使用echarts图表实例代码详解


Posted in Javascript onOctober 22, 2018

安装vue依赖

使用npm

npm install echarts --save

使用yarn

yarn add echarts

使用国内的淘宝镜像:

//安装淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org

//从淘宝镜像下载
cnpm install echarts -S

引入ECharts

安装好的ECharts会放在node_modules目录下。

全部引入

1.直接在项目代码引入

可以直接在项目代码中 require('echarts') 得到 ECharts。声明一个echarts变量,直接使用变量即可。

Home.vue //需要使用的页面

//引入
var echarts = require('echarts');

// 基于准备好的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]
 }]
});

2.全局引入

在mian.js中全局引入,并在vue.prototype属性中添加echarts属性为$echarts,在代码中通过this.$echarts就可以使用了。

main.js

//引入
import echarts from 'echarts'

Vue.prototype.$echarts = echarts

Home.vue //需要使用的页面

//基于准备好的dom,初始化echarts实例
var myChart = this.$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]
 }]
});

3.运行结果

在vue中使用echarts图表实例代码详解

按需引入

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

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

引入之后使用方式和全局引入相同。

1.直接在项目代码引入

Home.vue

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入柱状图
require('echarts/lib/chart/bar');
// 引入提示框和标题组件
require('echarts/lib/component/tooltip');
require('echarts/lib/component/title');

2.全局引入

main.js

import * as echarts from 'echarts/lib/echarts';
// 引入 echarts 主模块。
import 'echarts/lib/echarts'
// 引入柱形图
import 'echarts/lib/chart/bar'
// 引入柱形图
import 'echarts/lib/chart/pie'
//// 引入提示框组件、标题组件、工具箱、legend组件。
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/title'
import 'echarts/lib/component/toolbox'
import 'echarts/lib/component/legend'

Vue.prototype.$echarts =echarts;

注意

问题:

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

代码如下

<div id="main"></div>
this.$echarts.init(document.getElementById('main'))

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

解决办法:

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

代码如下

<div ref="main"></div>
this.$echarts.init(this.$refs.main)
或
this.$echarts.init(this.$refs['main'])

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

Javascript 相关文章推荐
Array.slice()与Array.splice()的返回值类型
Oct 09 Javascript
JQuery Easyui Tree的oncheck事件实现代码
May 28 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
jquery简单图片切换显示效果实现方法
Jan 14 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
微信小程序 实战程序简易新闻的制作
Jan 09 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
浅谈Vue2.0父子组件间事件派发机制
Jan 08 Javascript
使用 Element UI Table 的 slot-scope方法
Oct 10 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
Paypal支付不完全指北
Jun 04 Javascript
Koa 使用小技巧(小结)
Oct 22 #Javascript
在js代码拼接dom对象到页面上的模板总结
Oct 21 #Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 #Javascript
Node.js中的不安全跳转如何防御详解
Oct 21 #Javascript
详解Axios 如何取消已发送的请求
Oct 20 #Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
Oct 20 #Javascript
Iview Table组件中各种组件扩展的使用
Oct 20 #Javascript
You might like
PHP中MD5函数使用实例代码
2008/06/07 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
php explode函数实例代码
2012/02/27 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
JS模板实现方法
2013/04/03 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python 爬取微信文章
2016/01/30 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
python中的闭包函数
2018/02/09 Python
Django 解决由save方法引发的错误
2020/05/21 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
python爬取抖音视频的实例分析
2021/01/19 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
const和static readonly区别
2013/05/20 面试题
运输服务质量承诺书
2014/03/27 职场文书
请假条格式范文
2014/04/10 职场文书
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript