Vue + Echarts页面内存占用高问题解决

Vue + Echarts页面内存占用高问题解决

1.问题描述

目前使用的是Vue2 + Echarts4.x的组合,页面如下所示。

就是一个类似于神策的数据看板页面,左侧是一个导航栏,右侧看板页面中包含很多个报表图片,其中报表页面中对Echarts图表进行了二次封装。点击左侧的菜单可以切换不同的看板,有些看板页面中的报表比较多,用户多次切换后页面的内存占用可以上升为GB级。严重时导致页面内存溢出,使得页面崩溃,极大影响了用户体验。

2.解决方法

参考了多篇文章,发现有可能是Echarts+Vue2中,组件销毁时,不会自动释放掉组件中持有的Echarts实例对象。因此只需要在组件销毁的时候主动销毁掉其持有的Echarts实例对象即可。

普通Vue项目可使用如下方式。

js 复制代码
data(){
    return {
		MyEchart: null,
    }
}
initEcharts(){
   // ....
}
// ....
beforeDestroy(){
	if(this.MyEchart){
		this.MyEchart.dispose();
		this.MyEchart=null;
	}
}

Vue2 + TyepScript项目使用如下方式。

ts 复制代码
private MyEchart: any = null;

private initEcharts(): void {
    // ...
}

beforeDestroy(): void{
    if(this.MyEchart){
		this.MyEchart.dispose();
		this.MyEchart=null;
	}
}

参考文章

相关推荐
未来龙皇小蓝7 分钟前
RBAC前端架构-02:集成Vue Router、Vuex和Axios实现基本认证实现
前端·vue.js·架构
空白诗12 分钟前
高级进阶 React Native 鸿蒙跨平台开发:slider 滑块组件 - 进度条与评分系统
javascript·react native·react.js
晓得迷路了21 分钟前
栗子前端技术周刊第 116 期 - 2025 JS 状态调查结果、Babel 7.29.0、Vue Router 5...
前端·javascript·vue.js
How_doyou_do23 分钟前
执行上下文、作用域、闭包 patch
javascript
叫我一声阿雷吧28 分钟前
深入理解JavaScript作用域和闭包,解决变量访问问题
开发语言·javascript·ecmascript
淡忘_cx35 分钟前
使用Jenkins自动化部署vue项目(2.528.2版本)
vue.js·自动化·jenkins
iDao技术魔方1 小时前
深入Vue 3响应式系统:为什么嵌套对象修改后界面不更新?
javascript·vue.js·ecmascript
历程里程碑1 小时前
普通数组-----除了自身以外数组的乘积
大数据·javascript·python·算法·elasticsearch·搜索引擎·flask
摸鱼的春哥1 小时前
春哥的Agent通关秘籍07:5分钟实现文件归类助手【实战】
前端·javascript·后端
念念不忘 必有回响1 小时前
viepress:vue组件展示和源码功能
前端·javascript·vue.js