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代码运行不出来执行错误的可能情况整理
Oct 18 Javascript
jQuery的one()方法用法实例
Jan 19 Javascript
javascript正则表达式之search()用法实例
Jan 19 Javascript
jquery+html5制作超酷的圆盘时钟表
Apr 14 Javascript
javascript实现链接单选效果的方法
May 13 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
JavaScript数据结构之二叉树的遍历算法示例
Apr 13 Javascript
简述JS控制台的使用
Jul 15 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
Oct 19 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 13 Javascript
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 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
上海无线电三厂简史修改版
2021/03/01 无线电
PHP新手上路(七)
2006/10/09 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
python 图片验证码代码分享
2012/07/04 Python
深入理解Python中的元类(metaclass)
2015/02/14 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python 弧度与角度互转实例
2020/04/15 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
类的核心特性有哪些
2014/01/01 面试题
接口中的方法可以是abstract的吗
2015/07/23 面试题
网络安全方面的面试题
2015/11/04 面试题
大学生职业生涯规划范文
2014/01/22 职场文书
家具商场的活动方案
2014/08/16 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书