首页 前端知识 vue中使用echarts(含自适应监听及移除)

vue中使用echarts(含自适应监听及移除)

2024-03-02 09:03:47 前端知识 前端哥 390 124 我要收藏

1、html代码

<template>
  <div class="canvas" ref="canvas"></div>
</template>

2、js代码

<script>
export default {
  name: 'BarItemCharts',
  data () {
    return {
      chartIns: '',
      options: {}
    }
  },
  mounted () {
    this.init()
    window.addEventListener('resize', this.onResize)
  },
  methods: {
    init () {
      this.options = {...} // 此处写echarts配置
      if (!this.chartIns) {
        this.chartIns = this.$echarts.init(this.$refs.canvas)
      }
      this.chartIns.setOption(this.options)
    },
    onResize () { 
    // 刚方法是为了确保addEventListener和removeEventListener的东西是同一个
      if (this.chartIns) {
        this.chartIns.resize()
      }
    }
  },
  beforeDestroy () {
    window.removeEventListener('resize', this.onResize)
    if (this.chartIns) {
      this.chartIns.dispose()
    }
  }
}
</script>

上面的onResize 方法也可写在data里,用法一样 写法如下:

data () {
	const onResize = () => {
		if (this.chartIns) {
	      this.chartIns.dispose()
	    }
	}; // 此处声明后记得在return里返回
    return {
   	  onResize, 
      chartIns: '',
      options: {}
    }
  }

3、css代码

<style scoped lang="scss">
.canvas {
  height: 100%;
  width: 100%;
}
</style>
转载请注明出处或者链接地址:https://www.qianduange.cn//article/3088.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!