vue项目内存泄漏、性能优化总结

最近在客户现场发现项目会有内存泄漏的情况,导致操作一天电脑就卡死,现大体总结如下:

1、$route的监听使用场景
2、大对象的使用,是否回收(手动置null)
3、store的使用
4、window的使用
5、addEventListener的使用,记得unbind
6、第三方工具的使用,记得unbind
7、event bus使用,记得off

目前定位的场景有:

1.console.log打印vue实例,会每次刷新页面导致内存+10M左右,所以发线上的时候请一定配置webpack打包时过滤,已经过滤debugger。(坑逼,居然log也是导致泄漏)

2.通过eventBus进行通信的时候,请在页面销毁时off掉,setTimeOut、addEventListener也是同理。

3.lodash等第三方库请按需引入,不然组件引了一次,子组件又引了一次,就是导致没必要的内存占用和泄漏的风险。

4.这种dispatch的操作也会导致内存泄漏。

this.$store.dispatch('transcap/monitor/getPositionHistory', {
        self: this,
        params: {
          transOrderPkId: orderId
        }
      })

5.Select组件添加transfer属性后每次弹出层都会在body里新增dom,不刷新浏览器无法被销毁。优化方案,每次点击tab上的刷新按钮手动清除class 有“v-transfer-dom"的dom,这种会有风险,建议在具体的页面或者小范围调整,不建议全局操作。

如有新的定位是持续记录~

大家排查自己项目的时候,一定不要考虑是不是vue框架有问题,或者vue3新特性有问题,一定要先排查自己的代码,因为大佬发出来的框架肯定是已经考虑过内存泄漏的问题了,所以我们这些菜鸡切莫怀疑是vue框架的问题。就快速定位快速解决吧~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值