tags中关闭页面卡死,无法跳转
记录工作问题
1.在tags中关闭多个echarts组件组成的页面时,会导致页面卡死,tags无法点击跳转,页面数据丢失,只有刷新页面才可以继续操作,然后再次进入多个echarts组件组成的页面时关闭依旧会出现该问题。
分析问题,第一次以为是tags有问题,打断点和打印发现数据流动正常,排除tags。
然后分析页面数据和功能,页面数据都是测试数据,功能跳转之间没有任何异常。
最后看组件,发现多个echarts组件可能会产生卡死。
最后找到答案:
组件销毁时,仅清空 echart 实例,而非销毁
beforeDestroy() {
const chart = this.$refs.chart
if (!chart) {
return;
}
// 清空 resize 事件处理函数
window.removeEventListener("resize", this.resize);
// 清空 beforeunload 事件处理函数
window.removeEventListener('beforeunload', this.clearChart);
// 组件销毁前,回收图表
chart.dispose();
},