vue 中 Echarts 视图动态更新

vue 中 Echarts 视图动态更新

需求:父组件中数据跟新,子组件视图更新。
思路:子组件watch监听 props数据的变更,当监听到变更时,重新加载 options配置。
所以父组件只需要更新数据,子组件来接收监听

<template>
  <div>
    <div :id="id" style="width:100%; height: 100%"></div>
  </div>
</template>
<script>
export default {
  name: 'barCharts',
  props: {
      id: {
      type: String
    },
    data: {
      type: Array
    },
  },
  watch: {
    data: {
      handler(newValue, oldValue) {
        console.log('newValue', newValue)
        console.log('oldValue', oldValue)
        this.initLine() // 数据更新触发
      },
      deep: true // 深度监听
    }
  },

  data() {
    return {}
  },
  methods:{
	initLine() {
	let option = {
		...... // 视图配置项,这里简单写一些
		grid: {
          	top: 20,
          	bottom: 30,
          	left: 0,
          	right: 0
        },
        tooltip: {
        	show:false
        },
        xAxis: {
        	type: 'category'
        },
        yAxis:{
        	type: 'value'
        },
        series:{
        	data:this.data, // 监听这里 更改视图
        	type: 'bar', // 这里举例为柱状图
        }
        
	}
	let myChart = this.$echarts.init(document.getElementById('视图id,动态传入'), null, { renderer: 'svg' });
	myChart.setOption(option)
	}
   },
	
	
  mounted() {
    this.initLine();
  }
}
</script>

完美解决,可封装为组件,供多个同时调用,这里就不贴出来了😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值