From e7dd43df04b25c6064b2a1045dbb2924ab9b8de9 Mon Sep 17 00:00:00 2001 From: lth707 Date: Thu, 25 Jan 2024 09:38:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9element-resize-event->?= =?UTF-8?q?element-resize-detector?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/package.json | 4 ++-- packages/core/src/services/scene/SceneService.ts | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 4fc1af1aac..16728f5c52 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -30,7 +30,7 @@ "@mapbox/tiny-sdf": "^1.2.5", "@turf/helpers": "^6.1.4", "ajv": "^6.10.2", - "element-resize-event": "^3.0.3", + "element-resize-detector": "^1.2.4", "eventemitter3": "^4.0.0", "gl-matrix": "^3.1.0", "hammerjs": "^2.0.8", @@ -40,7 +40,7 @@ "viewport-mercator-project": "^6.2.1" }, "devDependencies": { - "@types/element-resize-event": "^2.0.0", + "@types/element-resize-detector": "^1.1.6", "@types/gl-matrix": "^2.4.5", "@types/hammerjs": "^2.0.36", "@types/lodash": "^4.14.138", diff --git a/packages/core/src/services/scene/SceneService.ts b/packages/core/src/services/scene/SceneService.ts index 28d31989b2..6c1f811e9d 100644 --- a/packages/core/src/services/scene/SceneService.ts +++ b/packages/core/src/services/scene/SceneService.ts @@ -1,7 +1,7 @@ // @ts-ignore import { AsyncSeriesHook } from '@antv/async-hook'; import { DOM } from '@antv/l7-utils'; -import elementResizeEvent, { unbind } from 'element-resize-event'; +import elementResizeDetectorMaker from "element-resize-detector"; import { EventEmitter } from 'eventemitter3'; import { inject, injectable } from 'inversify'; import 'reflect-metadata'; @@ -115,6 +115,8 @@ export default class Scene extends EventEmitter implements ISceneService { init: AsyncSeriesHook; }; + private erdUltraFast: elementResizeDetectorMaker.Erd + public constructor() { super(); // @see https://github.com/webpack/tapable#usage @@ -202,8 +204,10 @@ export default class Scene extends EventEmitter implements ISceneService { ); this.registerContextLost(); this.initContainer(); - - elementResizeEvent( + this.erdUltraFast = elementResizeDetectorMaker({ + strategy: "scroll" //<- For ultra performance. + }); + this.erdUltraFast.listenTo( this.$container as HTMLDivElement, this.handleWindowResized, ); @@ -401,7 +405,7 @@ export default class Scene extends EventEmitter implements ISceneService { this.destroyed = true; return; } - unbind(this.$container as HTMLDivElement, this.handleWindowResized); + this.erdUltraFast.removeListener(this.$container as HTMLDivElement, this.handleWindowResized); if (window.matchMedia) { window .matchMedia('screen and (min-resolution: 2dppx)') -- Gitee