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 相关文章推荐
Date对象格式化函数代码
Jul 17 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
May 22 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
javascript数据类型验证方法
Dec 31 Javascript
Javascript生成带参数的二维码示例
Oct 10 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
Oct 27 Javascript
Javascript中的 “&amp;” 和 “|” 详解
Feb 02 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
hammer.js实现图片手势放大效果
Aug 29 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
详解VUE前端按钮权限控制
Apr 26 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 Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现simhash算法实例
2014/04/25 Python
python实现简单温度转换的方法
2015/03/13 Python
Python多线程实现同步的四种方式
2017/05/02 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
Pytorch之保存读取模型实例
2019/12/30 Python
django API 中接口的互相调用实例
2020/04/01 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
大学生的应聘自我评价
2013/12/13 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
小学老师对学生的评语
2014/12/29 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书