From a1a24edef2847415a0b8a1389e3d355ade0b1dd4 Mon Sep 17 00:00:00 2001 From: DoubleBird <214778293@qq.com> Date: Tue, 12 Apr 2022 02:02:55 +0800 Subject: [PATCH] perf(components): [loading] unmount instance when loading end (#7110) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 周陈旻琨 --- packages/components/loading/__tests__/loading.spec.ts | 1 + packages/components/loading/src/loading.ts | 4 +++- packages/components/loading/src/service.ts | 3 +-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/components/loading/__tests__/loading.spec.ts b/packages/components/loading/__tests__/loading.spec.ts index 1c25006d46..e2e98c71b4 100644 --- a/packages/components/loading/__tests__/loading.spec.ts +++ b/packages/components/loading/__tests__/loading.spec.ts @@ -261,6 +261,7 @@ describe('Loading', () => { await nextTick() let masks = document.querySelectorAll('.el-loading-mask') + expect(loadingInstance).toEqual(loadingInstance2) expect(masks.length).toEqual(1) loadingInstance2.close() jest.runAllTimers() diff --git a/packages/components/loading/src/loading.ts b/packages/components/loading/src/loading.ts index 35b66bab34..cfa4144e14 100644 --- a/packages/components/loading/src/loading.ts +++ b/packages/components/loading/src/loading.ts @@ -44,6 +44,7 @@ export function createLoadingComponent(options: LoadingOptionsResolved) { removeClass(target, 'el-loading-parent--hidden') } remvoeElLoadingChild() + loadingInstance.unmount() } function remvoeElLoadingChild(): void { vm.$el?.parentNode?.removeChild(vm.$el) @@ -140,7 +141,8 @@ export function createLoadingComponent(options: LoadingOptionsResolved) { }, } - const vm = createApp(elLoadingComponent).mount(document.createElement('div')) + const loadingInstance = createApp(elLoadingComponent) + const vm = loadingInstance.mount(document.createElement('div')) return { ...toRefs(data), diff --git a/packages/components/loading/src/service.ts b/packages/components/loading/src/service.ts index 91c0c5b4f3..14d62b0ec8 100644 --- a/packages/components/loading/src/service.ts +++ b/packages/components/loading/src/service.ts @@ -19,8 +19,7 @@ export const Loading = function ( const resolved = resolveOptions(options) if (resolved.fullscreen && fullscreenInstance) { - fullscreenInstance.remvoeElLoadingChild() - fullscreenInstance.close() + return fullscreenInstance } const instance = createLoadingComponent({