vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue echarts绑定事件和解绑事件

vue echarts实现绑定事件和解绑事件

作者:weixin_46412709

这篇文章主要介绍了vue echarts实现绑定事件和解绑事件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue echarts绑定事件和解绑事件

// echarts 官网里面 action 和 events 都是触发事件的一些行为,默认事件和自定义事件

var mYcharts = echarts.init(dom)
// 绑定事件
mYcharts.on('click', function (arg) {
	// 里面会有默认形参
	console.log(arg)
})

mYcharts.off('click') // 解绑 click 事件

vue使用echarts中遇到的问题及解决

最近在做demo的过程中用到了echarts,在过程中也踩了好多坑,所以专门记录一下遇到的问题及解决方案。

遇到的问题

解决方案

安装完echarts依赖后表格示例无法显示

解决方案:这种问题一般会是两种情况:

我是第二种情况,解决代码如下

// 安装echarts依赖
npm install echarts --save

// 在main.js文件中添加
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts 

// 实际业务处理文件中使用echarts
<div ref="xxxx" />

this.$echarts.init(this.$refs.xxxx).setOption({
 ...
})

示例图标显示后格式异常

解决方案: 我当时出现的情况是示例只在很窄的区域展示,所以要给对应的dom-div设置宽高,解决如下

<div ref="xxxx" style="width: 45vh; height: 300px" />

再次进入业务事件后提示dom已加载并展示异常

解决方案: 这个问题确实有点恶心,当我再次调用对应的echarts时,控制台会报dom已加载的警告,并且页面的示例图表会展示异常,解决方法是每次重新调用echarts时都需要先判断是否dom上已经存在,若存在则需要销毁对应的dom结构,这样处理过后就不会再有上述提示警告并且echarts图表能够正常展示,解决代码如下:

// 关键代码
	let myChart = this.$echarts.getInstanceByDom(
      this.$refs.xxxx
    )
    if (myChart == null) {
	  myChart = this.$echarts.init(this.$refs.xxxx).setOption({
        ...
      })
    }

// 举例
    // 账单类型
    noteTypeBarEcharts() {
      const finalArr = this.sortArr(this.tableInfo)
      console.log('分类后的数组', finalArr)
      // 检测是否已经存在echarts实例,如果不存在,则不再去初始化
      let myChart = this.$echarts.getInstanceByDom(
        this.$refs.barSecond
      )
      if (myChart == null) {
        myChart = this.$echarts.init(this.$refs.barSecond).setOption({
          title: {
            text: '账单类型',
            subtext: '(单位/元)',
            left: 'center'
          },
          tooltip: {
            trigger: 'item',
            formatter: '{b}:{c} ({d}%)'
          },
          toolbox: {
            feature: {
              saveAsImage: {}
            }
          },
          legend: {
            orient: 'vertical',
            left: 'left'
          },
          series: [
            {
              type: 'pie',
              radius: '50%',
              data: finalArr
            }
          ]
        })
      }
    }

至此,我们就可以在vue项目中随意使用echarts啦

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文