vue2项目ResizeObserver loop completed with undelivered notifications
时间: 2023-11-28 16:44:24 浏览: 85
vue-response-components-使用ResizeObserver创建响应组件。-Vue.js开发
根据提供的引用内容,可以得知在Vue2项目中使用ResizeObserver时可能会出现“ResizeObserver loop completed with undelivered notifications”的错误。这是因为ResizeObserver在监听元素大小变化时可能会出现循环调用的情况,导致浏览器性能下降。为了解决这个问题,可以使用防抖函数对ResizeObserver进行优化。
以下是一个解决方案:
1. 在main.ts文件中引入防抖函数debounce:
```typescript
const debounce = (fn: any, delay: any) => {
let timer: any = null;
return function () {
let context = this;
let args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
```
2. 在main.ts文件中重写ResizeObserver类:
```typescript
const _ResizeObserver = window.ResizeObserver;
window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
constructor(callback: any) {
callback = debounce(callback, 16);
super(callback);
}
}
```
这样就可以解决“ResizeObserver loop completed with undelivered notifications”的问题了。
阅读全文