在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 相关文章推荐
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
Feb 19 Javascript
JS设置网页图片vspace和hspace属性的方法
Apr 01 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
Jul 01 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
AngularJS指令用法详解
Nov 02 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
微信小程序实现复选框效果
Dec 28 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图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
jquery使用经验小结
2015/05/20 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python中特殊函数集锦
2015/07/27 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
单位消防安全制度
2014/01/12 职场文书
个人简历中自我评价
2014/02/11 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
小学作文评语大全
2014/04/21 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
六年级数学教学反思
2016/02/16 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python
Vue图片裁剪组件实例代码
2021/07/02 Vue.js
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android