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;
	}
}

参考文章

相关推荐
张元清21 分钟前
React useDisclosure Hook:管理模态框和抽屉的打开关闭状态 (2026)
javascript·react.js
天天码行空1 小时前
vkeyboardhand:零依赖虚拟键盘指法组件
前端·javascript·vue.js
我要两颗404西柚1 小时前
Stage four:VUE项目上线
前端·javascript·vue.js
满栀5854 小时前
原生JS + ECharts 多图表可视化实战:从业务实现到工程化优化
开发语言·javascript·echarts
TinssonTai4 小时前
Vite 8 版 Chrome 插件全家桶,popup/options/sidepanel 一次集齐
前端·vue.js
sugar__salt5 小时前
Vue3 自定义指令与插槽(Slot)技术详解
前端·javascript·vue.js·前端框架·vue
英勇无比的消炎药6 小时前
TinyRobot DropdownMenu 下拉菜单:三种触发方式与实现原理
vue.js
Hilaku6 小时前
前端真的比后端简单吗?
前端·javascript·程序员
zhedream6 小时前
a-select / a-input 自定义下拉、Vue2 Fragment ,以及 transfer-dom
前端·vue.js
无人生还6 小时前
从 Vue3 到 React · 快速上手系列第 10 篇:路由
前端·vue.js·react.js