场景:使用window.addEventListener('resize', function() {})给echarts图表做自适应,但是在切换路由时,其他页面的控制台会疯狂报错:Cannot read properties of null (reading 'getAttribute')
原因:内存泄漏,使用 window.addEventListener 添加的事件监听器,在不需要时应该进行清除,以避免潜在的内存泄漏问题
解决方法:window.removeEventListener
onBeforeUnmount(() => {
window.removeEventListener("resize", handleResize);
});
function handleResize() {
nextTick(() => {
riskNumRefList.value?.forEach((item: any) => {
if (!isEmpty(item)) {
nextTick(() => {
item.drawchart();
});
}
});
riskSpreadRefList.value?.forEach((item: any) => {
if (!isEmpty(item)) {
nextTick(() => {
item.drawchart();
});
}
});
});
}
onMounted(() => {
handleLoad();
window.addEventListener("resize", handleResize);
});