VUE中Echarts的resize事件报错和移除windows的事件问题

 更新时间:2023年07月01日 10:02:54   作者:初入前端的小谢  
这篇文章主要介绍了VUE中Echarts的resize事件报错和移除windows的事件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Echarts的resize事件报错和移除windows的事件

Echarts的resize事件报错

原因:echart的api只有在实例化之后才能调用,如果直接调用肯定会导致报错

解决方式:在调用resize的之前判断是否已经实例化

this.barchart = this.$echarts.init(dom) // 实例化Echarts对象
/****************/
if(this.barchart) { // 方法一
    this.syqchart.resize()
}
/****************/
this.syqchart && this.syqchart.resize() // 方法二
/****************/

移除windows的resize事件

一般在使用echart图表时都会去监听窗口大小的变化,以之来实现图表的重新绘制。

但是当添加了window事件之后,离开了当前页面,也依然会继续监听并且执行事件的回调函数,这样就会导致浏览器CPU的占用,页面卡顿。

解决方式:

    resizeHandler(){ // methods中定义事件处理函数(必须将处理函数提取出来,这样在移除的时候就能通过指针找到该处理函数)
        this.barchart && this.barchart.resize()
        this.linechart && this.linechart.resize()
    }
    mounted() { // 页面加载注册事件
         window.addEventListener('resize', this.resizeHandler, false)
      }
      beforeDestroy() { // 页面离开移除事件
        window.removeEventListener('resize', this.resizeHandler)
      }

ECharts的resize失效原因以及使用方法

很多朋友在开发的过程中要把ECharts图标做成自适应浏览器宽高的效果。

于是去翻看ECharts官网发现了resize方法,结果用了之后发现没用,而且根本不知道什么原因。

解决办法

不能给ECharts的容器设置固定的宽高。

  • 宽度要写百分比
  • 高度要写vh
  • 然后再搭配resize方法才可以实现根据浏览器大小而改变大小的功能

示例代码

let ECharts = echarts.init(document.getElementById('wrapBox'));
//ECharts的配置项和数据
let option = {
	title: {
		text: 'demo'
	},
	tooltip: {},
	legend: {
		data: ['dataSource']
	},
	xAxis: {
		data: ['aa', 'bb', 'cc']
	},
	yAxis: {},
	series: [{
		name: 'dataSource',
		type: 'bar',
		data: [2, 5, 6],
	}]
};
//配置图表数据及配置项
ECharts.setOption(option);
//根据浏览器大小改变大小
window.onresize = () => {
	ECarts.resize();
	//如果有多个表变动在下方依次写下去就可以了
}

总结

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

相关文章

  • 详解vuejs2.0 select 动态绑定下拉框支持多选

    详解vuejs2.0 select 动态绑定下拉框支持多选

    这篇文章主要介绍了vuejs2.0 select动态绑定下拉框 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vue中的按钮绑定事件小案例

    vue中的按钮绑定事件小案例

    这篇文章主要介绍了vue中的按钮绑定事件小案例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • vue3界面使用router及使用watch监听router的改变

    vue3界面使用router及使用watch监听router的改变

    vue2中使用router非常简单,但是vue3中略微有些改变,通过本文讲解下他的改变,对vue3 watch监听router相关知识感兴趣的朋友一起看看吧
    2022-11-11
  • Vue中计算属性computed的示例解读

    Vue中计算属性computed的示例解读

    计算属性和普通属性一样是在模板中绑定计算属性的,当data中对应数据发生改变时,计算属性的值也会发生改变。下面这篇文章主要给大家介绍了关于Vue中计算属性computed的相关资料,需要的朋友可以参考下。
    2017-07-07
  • vue2+el-menu实现路由跳转及当前项的设置方法实例

    vue2+el-menu实现路由跳转及当前项的设置方法实例

    这篇文章主要介绍了vue2+el-menu实现路由跳转及当前项的设置,方法实例代码详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • 详解Vue的异步更新实现原理

    详解Vue的异步更新实现原理

    这篇文章主要介绍了Vue的异步更新实现原理,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-12-12
  • vue2路由表中异步加载组件命名方式

    vue2路由表中异步加载组件命名方式

    这篇文章主要介绍了vue2路由表中异步加载组件命名方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 如何使用JS监听一个变量改变

    如何使用JS监听一个变量改变

    在JS编程中如果能监测变量的内容,当变量值发生变化时,实时发出通知,这定是一项很有用的功能,下面这篇文章主要给大家介绍了关于如何使用JS监听一个变量改变的相关资料,需要的朋友可以参考下
    2023-05-05
  • VUE3基于vite封装条形码和二维码组件的详细过程

    VUE3基于vite封装条形码和二维码组件的详细过程

    基础组件开发是项目业务开发的基石, 本文主要介绍了通过vue3的vite脚手架快速搭建项目, 开发条形码和二维码组件的过程,感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • vue实现轮播图帧率播放

    vue实现轮播图帧率播放

    这篇文章主要为大家详细介绍了vue实现轮播图帧率播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01

最新评论