Lottie-Web 内存泄漏导致网页内存占用异常、页面卡顿、无响应、崩溃的解决方案

🤨1、前言

⚠️ 最近一次的网站开发中,为了丰富页面的动效在NUXT3(v3.11)开启SSR的情况下使用了lottie动画,引入了vue3-lottie这个包,然后在开发过程中发现浏览器内存占用大幅提高,特别是在频繁改动保存组件,页面自动刷新的时候,单标签页和devTools能高达4个多G的内存占用,从而导致页面卡顿、无响应甚至崩溃。

lottie-web(页面内容相同)

解决后(页面内容同上)

起初我以为是我存在死循环,然后逐一排查,最终找到罪魁祸首:lottie-web/vue3-lottie!!!

2、😎 首先给出解决方案

1、取消引用vue3-lottie和lottie-web(因为他们目前存在BUG)
2、在线引入或者下载后本地引入JS文件:https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js
3、您可以参考我以下的Nuxt组件,希望能帮助到您!

<template>
  <div>
    <lottie-player ref="lottie" src="/image/lottie/4MMSzbLIE3.json" 
        background="transparent" 
        speed="2"
        style="width: 300px; height: 300px" 
        direction="1" 
        mode="normal" loop autoplay>
   </lottie-player>
    <a-space>
      <a-button type="primary" @click="lottie.play()">播放</a-button>
      <a-button type="primary" @click="lottie.stop()">停止</a-button>
    </a-space>
  </div>
</template>

<script setup>
import "assets/js/lottie-player.js";
const lottie = ref(null);
const stop = () => {
  lottie.value.stop();
};
</script>

<style lang="less"></style>

这个组件可以帮助你正常的显示、操作lottie动画,当然我也测试过了在NUXT3 (v3.11)开启SSR服务端渲染时,可以正常的显示没有BUG。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值