vue.js如何将echarts封装为组件一键使用详解


Posted in Javascript onOctober 10, 2017

前言

本文主要给大家介绍了关于vue.js将echarts封装为组件一键使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

说明

做项目的时候为了让数据展示的更加直观,总会用到图表相关的控件,而说到图表控件第一时间当然想到ECharts这个开源项目,而它不像iview、element-ui这些组件使用起来那么便捷,需要绕一个小弯,为了图方便于是对ECharts进行了一层封装

控件演示

vue.js如何将echarts封装为组件一键使用详解

控件使用

概要

  • 基于echarts的二次封装
  • 由数据驱动
  • 控件源码见src/components/charts

文档

props

属性 说明 类型
_id 图表唯一标识,当id重复将会报错 String
_titleText 图表标题 String
_xText x轴描述 String
_yText y轴描述 String
_chartData 图表数据 Array
_type 图表类型,提供三种(LineAndBar/LineOrBar/Pie)

调用示例

<chart
 :_id="'testCharts'"
 :_titleText="'访问量统计'"
 :_xText="'类别'"
 :_yText="'总访问量'"
 :_chartData="chartData"
 :_type="'Pie'"></chart>
 //测试数据样例 [["类别1",10],["类别2",20]]

实现方式

创建一个待渲染的dom

<template>
 <div :id="_id" class="chart"></div>
</template>

绘制函数

function drawPie(chartData,id,titleText,xText,yText) {
 var chart = echarts.init(document.getElementById(id))
 var xAxisData = chartData.map(function (item) {return item[0]})
 var pieData = []
 chartData.forEach((v,i)=>{
  pieData.push({
  name:v[0],
  value:v[1]
  })
 })
 chart.setOption({
  title : {
  text: titleText,
  subtext: '',
  x:'center'
  },
  tooltip : {
  trigger: 'item',
  formatter: "{a} <br/>{b} : {c} ({d}%)"
  },
  legend: {
  orient: 'vertical',
  left: 'left',
  data: xAxisData
  },
  series : [
  {
   name: xText,
   type: 'pie',
   radius : '55%',
   center: ['50%', '60%'],
   data:pieData,
   itemStyle: {
   emphasis: {
    shadowBlur: 10,
    shadowOffsetX: 0,
    shadowColor: 'rgba(0, 0, 0, 0.5)'
   }
   }
  }
  ]
 })
 }

挂载结束、数据源改变时重绘

watch:{
  _chartData(val){
  switch (this._type){
   case "LineAndBar":
   drawLineAndBar(val,this._id,this._titleText,this._xText,this._yText);
   break
   case "LineOrBar":
   drawLineOrBar(val,this._id,this._titleText,this._xText,this._yText);
   break
   case "Pie":
   drawPie(val,this._id,this._titleText,this._xText,this._yText);
   break
   default:
   drawLineAndBar(val,this._id,this._titleText,this._xText,this._yText);
   break
  }
  }
 },
 mounted() {
  switch (this._type){
  case "LineAndBar":
   drawLineAndBar(this._chartData,this._id,this._titleText,this._xText,this._yText);
   break
  case "LineOrBar":
   drawLineOrBar(this._chartData,this._id,this._titleText,this._xText,this._yText);
   break
  case "Pie":
   drawPie(this._chartData,this._id,this._titleText,this._xText,this._yText);
   break
  default:
   drawLineAndBar(this._chartData,this._id,this._titleText,this._xText,this._yText);
   break
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JS按字节截取字符长度实例
Nov 20 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
JavaScript数组和循环详解
Apr 27 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
javascript表单事件处理方法详解
May 15 Javascript
JavaScript之Date_动力节点Java学院整理
Jun 28 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 Javascript
jQuery操作事件完整实例分析
Jan 10 jQuery
解决Vue中使用keepAlive不缓存问题
Aug 04 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 #Javascript
基于vue的换肤功能的示例代码
Oct 10 #Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 #Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 #Javascript
认识jQuery的Promise的具体使用方法
Oct 10 #jQuery
JavaScript如何获取到导航条中HTTP信息
Oct 10 #Javascript
使用Dropzone.js上传的示例代码
Oct 10 #Javascript
You might like
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
js判断节假日实例代码
2017/12/27 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
js实现简单点赞操作
2020/03/17 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
使用python装饰器验证配置文件示例
2014/02/24 Python
python读取csv文件示例(python操作csv)
2014/03/11 Python
python实现简易云音乐播放器
2018/01/04 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python中的decorator的作用详解
2018/07/26 Python
pandas 时间格式转换的实现
2019/07/06 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python空元组在all中返回结果详解
2020/12/15 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
优秀应届毕业生推荐信
2014/02/18 职场文书
党员承诺书格式
2014/05/21 职场文书
2014年共青团工作总结
2014/12/10 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书