iview内存泄漏

iview在升级到view-design之前,是存在严重的内存泄漏问题的,而如果你在项目中大量使用了iview组件,就可能面临大量的升级工作要做,因为样式很多是不兼容的。

我们今天就看一下iview的源码,看看到底问题在哪里?为什么会导致内存泄漏?

内存泄漏的产生

首先进入iview官网https://iview.github.io/,安装老版iview2.0。

复制代码
npm install iview -S

我们看一下常用的table组件吧:


1.png

我们可以看到,在beforeDestory周期中,只释放了挂载的resize事件,并未释放this下注册的自定义事件on-visible-change,这就会导致运行一段时间,this下挂载的自定义事件越来越多,从而导致内存的泄漏。

我们再看看升级后的view-design:


2.png

可以看到,作者已经将这个漏洞堵住了。类似的问题大家可以在其他组件找到,老版iview2.0有大量这类的问题,通过this.$on方法注册的自定义事件都没释放。

beforeDestroy

我们一定要重视beforeDestroy生命周期的作用,将dom的引用、所有注册的事件都要释放掉,防止内存泄漏的产生。
最后编辑于:2025-04-21 10:55:09
© 著作权归作者所有,转载或内容合作请联系作者

喜欢的朋友记得点赞、收藏、关注哦!!!

相关推荐
一水21 分钟前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
【心态好不摆烂】23 分钟前
MySQL——复合查询
数据库·mysql
AC赳赳老秦27 分钟前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
磁爆步兵1 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
瞬间&永恒~1 小时前
【MySQL】 InnoDB 锁等待排查与并发压测实验
运维·数据库·mysql
烟漠河洛1 小时前
俄罗斯电商3200亿卢布疯长:跨境支付与多平台订单系统架构解析
mysql·php
流星白龙2 小时前
【Docker】4.NameSpace空间隔离实战
java·运维·docker
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第207题】【09_Zookeeper篇】第8题:谈谈 ZooKeeper 的可靠性保障机制
java·zookeeper·高可用·可靠性·分布式系统
harmful_sheep2 小时前
maven多版本包导致java.lang.NoClassDefFoundError
java·maven
Mark_ZP2 小时前
【锁2】锁的分类与概念
java·