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

时间:2021-05-25

依旧直接上代码~

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

//引入echartsimport 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做动态数据渲染操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章