Vue2 使用 Echarts 创建图表实例代码


Posted in Javascript onMay 18, 2017

在后台管理系统中,图表是一个很普遍的元素。目前常用的图标插件有 charts,  Echarts, highcharts。这次将介绍 Echarts 在 Vue 项目中的应用。

一、安装插件

使用 cnpm 安装 Echarts

cnpm install echarts -S

和之前介绍的 axios 类似,echarts 也不能通过 Vue.use() 进行全局调用

通常是在需要使用图表的 .vue 文件中直接引入

import echarts from 'echarts'

也可以在 main.js 中引入,然后修改原型链

Vue.prototype.$echarts = echarts

然后就可以全局使用了

let myChart = this.$echarts.init(document.getElementById('myChart'))

二、创建图表

首先需要在 HTML 中创建图表的容器

需要注意的是,图表的容器必须指定宽高,也就是说 width,height 不能使用百分比,只能用 px

这样确实不够灵活,不过我们可以用 js 来改变 width 和 height,使图表容器能够自适应,具体的实现请往后看

然后在 mounted 中创建图表,具体的配置参考官方文档,这里不再赘述

 三、按需引入

上面引入的 echarts 包含了所有图表,但有时候我们只需要一两个基本图表,这时候完整的 echarts 就显得累赘

假如只需要创建一个饼图,那么可以这么做:

// 引入基本模板
 let echarts = require('echarts/lib/echarts')
 // 引入饼图组件
 require('echarts/lib/chart/pie')
 // 引入提示框和图例组件
 require('echarts/lib/component/tooltip')
 require('echarts/lib/component/legend')

之所以使用 require 而不是 import,是因为 require 可以直接从 node_modules 中查找,而 import 必须把路径写全

可以按需引入的模块列表见 https://github.com/ecomfe/echarts/blob/master/index.js

 四、适应容器

上面说过,图表的容器必须固定宽高,这确实是一个比较反人类的设定

为了解决这个问题,需要给图表容器外面再加一个容器,而这个外容器的宽高可以适应页面。上面的 <div class="charts"> 就是这样的外容器

let chartBox = document.getElementsByClassName('charts')[0]
let myChart = document.getElementById('myChart')

// 用于使chart自适应高度和宽度,通过窗体高宽计算容器高宽
function resizeCharts () {
 myChart.style.width = chartBox.style.width + 'px'
 myChart.style.height = chartBox.style.height + 'px'
}
// 设置容器高宽
resizeCharts()
   
let mainChart = echarts.init(myChart)
mainChart.setOption(options)

当页面加载的时候,将外容器的宽高,赋给图表容器

但这只是解决了页面加载时的自适应问题

如果在页面加载之后,仍需要图表自适应宽高,就需要用到 echarts 的媒体查询

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
js星星评分效果
Jul 24 Javascript
在JS数组特定索引处指定位置插入元素的技巧
Aug 24 Javascript
基于JavaScript代码实现随机漂浮图片广告
Jan 05 Javascript
AngularJS基础 ng-keydown 指令简单示例
Aug 02 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
Mar 11 Javascript
javascript触发模拟鼠标点击事件
Jun 26 Javascript
vue实现滑动到底部加载更多效果
Oct 27 Javascript
AngularJS折叠菜单实现方法示例
May 18 #Javascript
jQuery Validate 校验多个相同name的方法
May 18 #jQuery
easyUI下拉列表点击事件使用方法
May 18 #Javascript
AngularJS自定义指令之复制指令实现方法
May 18 #Javascript
AngularJS使用ng-class动态增减class样式的方法示例
May 18 #Javascript
Vue中img的src属性绑定与static文件夹实例
May 18 #Javascript
JS验证全角与半角及相互转化的介绍
May 18 #Javascript
You might like
PHP+DBM的同学录程序(4)
2006/10/09 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP 命名空间实例说明
2011/01/27 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
PHP引用返回用法示例
2016/05/28 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
htm调用JS代码
2007/03/15 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
Python @property原理解析和用法实例
2020/02/11 Python
浅析Python中字符串的intern机制
2020/10/03 Python
重构Python代码的六个实例
2020/11/25 Python
Python使用Pygame绘制时钟
2020/11/29 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
求职导师推荐信范文
2015/03/27 职场文书
2015年领班工作总结
2015/04/29 职场文书
升学宴来宾致辞
2015/07/27 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server