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();
	//如果有多个表变动在下方依次写下去就可以了
}

总结

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

相关文章

  • Vue 组件复用多次自定义参数操作

    Vue 组件复用多次自定义参数操作

    这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 利用vueJs实现图片轮播实例代码

    利用vueJs实现图片轮播实例代码

    本篇文章主要介绍了利用vueJs实现图片轮播实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • vue-admin-box第一步npm install时报错的处理

    vue-admin-box第一步npm install时报错的处理

    这篇文章主要介绍了vue-admin-box第一步npm install时报错的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue.js实现文件上传和进度条显示功能

    Vue.js实现文件上传和进度条显示功能

    在现代Web开发中,文件上传是一个常见而重要的需求,无论是在用户上传头像、文档或者其他类型的文件时,良好的用户体验都是至关重要的,在这篇博客中,我们将介绍如何使用Vue.js来实现文件上传功能,同时显示上传进度条,需要的朋友可以参考下
    2024-11-11
  • axios中如何进行同步请求(async+await)

    axios中如何进行同步请求(async+await)

    这篇文章主要介绍了axios中如何进行同步请求(async+await),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • VueJs使用Amaze ui调整列表和内容页面

    VueJs使用Amaze ui调整列表和内容页面

    这篇文章主要介绍了VueJs 填坑日记之使用Amaze ui调整列表和内容页面,需要的朋友可以参考下
    2017-11-11
  • vue项目用后端返回的文件流实现docx和pdf文件预览

    vue项目用后端返回的文件流实现docx和pdf文件预览

    本文主要介绍了vue项目用后端返回的文件流实现docx和pdf文件预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • vue中vee validate表单校验的几种基本使用

    vue中vee validate表单校验的几种基本使用

    这篇文章主要介绍了vee-validate表单校验的基本使用,需要的朋友可以参考下
    2018-06-06
  • Vue表单类的父子组件数据传递示例

    Vue表单类的父子组件数据传递示例

    本篇文章主要介绍了Vue表单类的父子组件数据传递示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • vue+jquery+lodash实现滑动时顶部悬浮固定效果

    vue+jquery+lodash实现滑动时顶部悬浮固定效果

    这篇文章主要为大家详细介绍了vue+jquery+lodash实现滑动时顶部悬浮固定效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论