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
© 著作权归作者所有,转载或内容合作请联系作者

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

相关推荐
sg_knight7 分钟前
Spring Cloud LoadBalancer深度解析:官方负载均衡方案迁移指南与避坑实践
java·spring boot·spring·spring cloud·微服务·负载均衡
llwszx37 分钟前
Spring Boot 整合 Spring AI 与 MCP 开发智能体工具指南
人工智能·spring boot·spring·智能体·spring ai·mcp
_何同学44 分钟前
Ollama 安装 DeepSeek 与 Spring Boot 集成指南
java·spring boot·后端·ai
掘根1 小时前
【MySQL进阶】常用MySQL程序
数据库·mysql
小毛驴8501 小时前
Windows MySQL8密码忘了解决办法
mysql
PH = 72 小时前
MySQL的Sql优化经验总结
数据库·mysql
Code季风2 小时前
跨语言RPC:使用Java客户端调用Go服务端的HTTP-RPC服务
java·网络协议·http·rpc·golang
fouryears_234172 小时前
Mysql初阶操作:对命令的详细介绍
数据库·mysql
宿辞1922 小时前
LINUX中MYSQL的使用
android·linux·mysql
盖世英雄酱581362 小时前
时间设置的是23点59分59秒,数据库却存的是第二天00:00:00
java·数据库·后端