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 相关文章推荐
csdn 博客的css样式 v3
Feb 24 Javascript
A标签中通过href和onclick传递的this对象实现思路
Apr 19 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
Sep 09 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
vue弹窗组件使用方法
Apr 28 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 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 中文处理函数集合
2008/08/27 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
Python中为什么要用self探讨
2015/04/14 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python代码需要缩进吗
2020/07/01 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
指针和引用有什么区别
2013/01/13 面试题
实习生自荐信范文
2013/11/13 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
学校火灾防控方案
2014/06/09 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
放飞理想演讲稿
2014/09/09 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
护士2015年终工作总结
2015/04/29 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书