Element Plus ResizeObserver loop limit exceeded 报错解决方案

作者:雾松

时间:2026-10-30

浏览:398

本文介绍 Element Plus 中常见的 ResizeObserver loop limit exceeded 报错原因及解决方法。通过引入防抖函数包装 ResizeObserver 回调,限制高频触发频率,从而避免浏览器报错。该方法适用于 Vue 3 项目,可直接在 main.js 或 app.vue 中全局配置生效。

文章目录

报错现象与原因

在开发过程中,控制台可能会频繁出现 ResizeObserver loop limit exceeded 的警告信息。

报错现象与原因

该报错的具体表现如上图所示。网络上常见的忽略错误方案(如在 onerror 钩子中捕获)往往无法彻底解决,因此这里提供一种更有效的代码级修复方案。

核心解决方案

const debounce = (fn, delay) => {
  let timer = null;
  return function () {
    let context = this;
    let args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function () {
      fn.apply(context, args);
    }, delay);
  }
}
const _ResizeObserver = window.ResizeObserver;
window.ResizeObserver = class ResizeObserver extends _ResizeObserver{
  constructor(callback) {
    callback = debounce(callback, 16);
    super(callback);
  }
}

代码配置位置

将以下代码片段插入到 main.js 或 app.vue 文件中即可生效,或者放置在触发该问题的页面之前的任意入口文件中。

总结

通过上述方式,可以有效抑制因组件尺寸频繁变化导致的 ResizeObserver 无限循环报错问题。

至此,关于 Element Plus 中 ResizeObserver loop limit exceeded 报错的解决方法介绍完毕。如需了解更多相关报错处理技巧,建议查阅本站往期文章或继续关注后续更新内容。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章