在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 web页面刷新的方法收集
Jul 02 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
May 30 Javascript
浅析Javascript使用include/require
Nov 13 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 Javascript
分享一个插件实现水珠自动下落效果
Jun 01 Javascript
浅谈jQuery双事件多重加载的问题
Oct 05 Javascript
BootStrap表单控件之文本域textarea
May 23 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
微信小程序+云开发实现欢迎登录注册
May 24 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
Feb 20 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
Javascript confirm多种使用方法解析
Sep 25 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
PHP实现AES256加密算法实例
2014/09/22 PHP
php的扩展写法总结
2019/05/14 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
jquery使用经验小结
2015/05/20 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
浅析Python中的多重继承
2015/04/28 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
python连接mongodb集群方法详解
2020/02/13 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
公务员转正考察材料
2014/02/07 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
导游词之青岛崂山
2019/12/27 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python