在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脚本性能优化注意事项
Nov 18 Javascript
jQuery中获取Radio元素值的方法
Jul 02 Javascript
javascript动态的改变IFrame的高度实现自动伸展
Oct 12 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
JS实现控制文本框的内容
Jul 10 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
element-ui使用导航栏跳转路由的用法详解
Aug 22 Javascript
VUE引入第三方js包及调用方法讲解
Mar 01 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
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中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP中的事务使用实例
2015/05/26 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
详解Python3 pandas.merge用法
2019/09/05 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
咖啡店自主创业商业计划书
2014/01/22 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
质量承诺书范文
2014/03/27 职场文书
财务人员个人工作总结
2015/02/27 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
服务员岗位职责范本
2015/04/09 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
Python序列化模块JSON与Pickle
2022/06/05 Python