在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当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
Jan 05 Javascript
JavaScript Event学习第九章 鼠标事件
Feb 08 Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
Oct 13 Javascript
vue2组件实现懒加载浅析
Mar 29 Javascript
微信小程序实战篇之购物车的实现代码示例
Nov 30 Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 Javascript
JavaScript indexOf()原理及使用方法详解
Jul 09 Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
Selenium执行JavaScript脚本的方法示例
Dec 31 Javascript
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
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
mouse_on_title.js
2006/08/25 Javascript
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
python实现dict版图遍历示例
2014/02/19 Python
Python编程之多态用法实例详解
2015/05/19 Python
Python基于多线程实现抓取数据存入数据库的方法
2018/06/22 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python集合操作方法详解
2020/02/09 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
超市营业员求职简历的自我评价
2013/10/17 职场文书
工作中的自我评价如何写好
2013/10/28 职场文书
高中体育教学反思
2014/01/29 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
详解Vue3使用axios的配置教程
2022/04/29 Vue.js