From f50a034df46967166a2dc7ce9b970647e6405186 Mon Sep 17 00:00:00 2001 From: ZhangSan <1843894164@qq.com> Date: Wed, 15 Jan 2025 11:08:22 +0800 Subject: [PATCH 1/2] Update back-button.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vue自动注销事件 --- packages/vue/src/hooks/back-button.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/vue/src/hooks/back-button.ts b/packages/vue/src/hooks/back-button.ts index 79cb48c447e..9fc40e719d4 100644 --- a/packages/vue/src/hooks/back-button.ts +++ b/packages/vue/src/hooks/back-button.ts @@ -1,4 +1,5 @@ import type { BackButtonEvent } from "@ionic/core/components"; +import { onBeforeUnmount, getCurrentInstance } from 'vue' type Handler = (processNextHandler: () => void) => Promise | void | null; export interface UseBackButtonResult { @@ -15,6 +16,12 @@ export const useBackButton = ( document.removeEventListener("ionBackButton", callback); document.addEventListener("ionBackButton", callback); + + if (getCurrentInstance()){ + onBeforeUnmount(() => { + unregister() + }); + } return { unregister }; }; From 7ffd6ceec0d8454f1f23228b8ad88ca339f2caf9 Mon Sep 17 00:00:00 2001 From: ZhangSan <1843894164@qq.com> Date: Wed, 15 Jan 2025 11:09:55 +0800 Subject: [PATCH 2/2] Update keyboard.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vue自动注销 --- packages/vue/src/hooks/keyboard.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vue/src/hooks/keyboard.ts b/packages/vue/src/hooks/keyboard.ts index 23fcb6443ca..fda4db594e1 100644 --- a/packages/vue/src/hooks/keyboard.ts +++ b/packages/vue/src/hooks/keyboard.ts @@ -1,5 +1,5 @@ import type { Ref } from "vue"; -import { ref } from "vue"; +import { ref, onBeforeUnmount, getCurrentInstance } from "vue"; export interface UseKeyboardResult { isOpen: Ref; @@ -33,6 +33,12 @@ export const useKeyboard = (): UseKeyboardResult => { window.addEventListener("ionKeyboardDidHide", hideCallback); } + if (getCurrentInstance()){ + onBeforeUnmount(() => { + unregister() + }); + } + return { isOpen, keyboardHeight,