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 相关文章推荐
javascript中获取下个月一号,是星期几
Jun 01 Javascript
jquery中的事件处理详细介绍
Jun 24 Javascript
原生JavaScript实现连连看游戏(附源码)
Nov 05 Javascript
jQuery搜索子元素的方法
Feb 10 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
Apr 15 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 Javascript
JavaScript实现DOM对象选择器
Sep 24 Javascript
微信分享调用jssdk实例
Jun 08 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
Sep 03 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中ini_set与ini_get用法实例
2014/11/04 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
Python中matplotlib中文乱码解决办法
2017/05/12 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
python读取Excel实例详解
2018/08/17 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
Python常用类型转换实现代码实例
2020/07/28 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
汽车专业学生自我评价
2014/01/19 职场文书
学生违反校规检讨书
2014/10/28 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
同学聚会祝酒词
2015/08/10 职场文书
小学音乐课教学反思
2016/02/18 职场文书