在vue中使用Echarts利用watch做动态数据渲染操作


Posted in Javascript onJuly 20, 2020

依旧直接上代码~

首先安装引入Echarts,我是直接把Echarts挂到VUE全局变量上了

//引入echarts
import Vue from 'vue';
import echarts from 'echarts';
Vue.prototype.$echarts = echarts;
<template>
 <div class="demo-container">
  <div ref="chart_wrap" class="chart_wrap"></div>
 </div>
</template>
<script>
export default {
 name: "demo",
 computed: {},
 data() {
  return {
   seriesData: []
  };
 },
 created() {},
 mounted() {
  this.initCharts();
  setTimeout(() => {
   this.seriesData.push({
    name: "销量",
    type: "bar",
    data: [5, 20, 36, 10, 10, 20]
   });
  }, 5000);
 },
 watch: {
  seriesData(val, oldVal) {
   console.log(1111, val, oldVal);
   this.setOptions(val);
  }
 },
 methods: {
  initCharts() {
   this.chart = this.$echarts.init(this.$refs.chart_wrap);
   this.setOptions();
  },
  setOptions(series) {
   console.log(22222,this.chart,series);
   this.chart.setOption({
    title: {
     text: "ECharts 入门示例"
    },
    tooltip: {},
    legend: {
     data: ["销量"]
    },
    xAxis: {
     data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    },
    yAxis: {},
    series: series
   });
  }
 }
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.chart_wrap {
 height: 400px;
}
</style>

补充知识:echarts-循环生成图

1、问题背景

利用for循环生产多个气泡图,并且每个气泡都可以点击

2、实现源码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>echarts-循环生成图</title>
		<link rel="shortcut icon" href="../js/echarts-2.2.7/doc/asset/ico/favicon.png">
		<script type="text/javascript" src="../js/echarts-2.2.7/doc/asset/js/jquery.min.js" ></script>
		<script type="text/javascript" src="../js/echarts-2.2.7/doc/example/www2/js/echarts-all.js" ></script>
		
		<style>
			body,html,#div-chart{
				width: 99%;
				height: 100%;
				font-family: "微软雅黑";
				font-size: 12px;
			}
			.chart{
				width: 1200px;
				height: 100px;
			}
		</style>
		<script>
			$(document).ready(function(){
				buildChart();
				buildChartJS();
			});
			
			function buildChart()
			{
				$("#div-chart").empty();
				var chart = "";
				for(var i=0;i<8;i++)
				{
					chart += "<div id='chart"+i+"' class='chart'></div>"; 
				}
				$("#div-chart").append(chart);
			}
			
			function buildChartJS()
			{
				for(var i=0;i<8;i++)
				{
					var chart = document.getElementById('chart'+i); 
	        var echart = echarts.init(chart); 
	         
	        var option = {
					  legend: {
					    data:['scatter1'],
					    show:false
					  },
					  splitLine:{
					
  show:false
					
 },
					  grid:{
					    borderWidth:0
					  },
					  xAxis : [
					    {
					    	show:false,
					      type : 'value',
					      splitNumber: 2,
					      scale: true,
					      axisLine:{
					      	show:false
					      },
					      splitLine:{
							

  show:false
							
 },
							  axisTick:{
							  	 show:false
							  }
					    }
					  ],
					  yAxis : [
					    {
					    	show:false,
					      type : 'value',
					      splitNumber: 2,
					      scale: true,
					      axisLine:{
					      	show:false
					      },
					      splitLine:{
							

  show:false
							
 }
					    }
					  ],
					  series : [
					    {
					      name:'scatter1',
					      type:'scatter',
					      symbol: 'emptyCircle',
					      symbolSize: 20,
					      itemStyle : { 
					      	normal: {
					      		color:'#0068B7',
					      		label:{
					      			show: true, 
					      			position: 'inside',
							      	textStyle : {
					              fontSize : 26,
					              fontFamily : '微软雅黑',
					              color:'#0068B7'
					            }
					      		}
					      	}
					      },
					      data: randomDataArray()
					    }
					  ]
					}; 
	         
          function eConsole(param) 
          {
          	alert(param.value);
            console.dir(param);
          }
          echart.on("click", eConsole);
	        echart.setOption(option); 
				}
			}
			
			function randomDataArray() 
			{
			  var d = [];
			  var arr = [3,5,7,9,10,1,2,4,8,6];
			  var len = 10;
			  for(var i=0;i<len;i++)
			  {
			  	d.push([i+1,0,arr[i],]);
			  }
			  
			  return d;
			}
		</script>
	</head>
	<body>
		<div id="div-chart">
			
		</div>
	</body>
</html>

3、实现结果

在vue中使用Echarts利用watch做动态数据渲染操作

以上这篇在vue中使用Echarts利用watch做动态数据渲染操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript页面加载完执行事件代码
Feb 11 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 Javascript
使用Node.js搭建静态资源服务详细教程
Aug 02 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
基于Axios 常用的请求方法别名(详解)
Mar 13 Javascript
微信小程序画布圆形进度条显示效果
Nov 17 Javascript
js简单的分页器插件代码实例
Sep 11 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
vue-router之解决addRoutes使用遇到的坑
Jul 19 #Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 #Javascript
解决vue项目router切换太慢问题
Jul 19 #Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 #Javascript
vue2.* element tabs tab-pane 动态加载组件操作
Jul 19 #Javascript
解决vue中el-tab-pane切换的问题
Jul 19 #Javascript
解决echarts图表使用v-show控制图表显示不全的问题
Jul 19 #Javascript
You might like
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
用vue快速开发app的脚手架工具
2018/06/11 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
用Python编写简单的微博爬虫
2016/03/04 Python
python导入时小括号大作用
2017/01/10 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
Python 画出来六维图
2019/07/26 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
介绍一下#error预处理
2015/09/25 面试题
销售人员个人求职信
2013/09/26 职场文书
校三好学生主要事迹
2014/01/11 职场文书
小班重阳节活动方案
2014/02/08 职场文书
村级换届选举方案
2014/05/10 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
公民授权委托书范本
2014/09/17 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
高一英语教学反思
2016/03/03 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书