From 05f34e1af59e139e6e914e772ba7dcd5b4bf680d Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期四, 31 十月 2024 15:56:26 +0800 Subject: [PATCH] 修改当天询问的问题时间 --- src/hooks/usePageDisplay.ts | 41 +++++++++++++++++++++++++++-------------- 1 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/hooks/usePageDisplay.ts b/src/hooks/usePageDisplay.ts index e9cb5f1..78d866d 100644 --- a/src/hooks/usePageDisplay.ts +++ b/src/hooks/usePageDisplay.ts @@ -1,23 +1,36 @@ -import { onActivated, onDeactivated, ref } from 'vue'; +import { onActivated, onBeforeUnmount, onDeactivated, onMounted, onUnmounted, ref } from 'vue'; +import router from '../router'; /** * 寮�鍚矾鐢辩紦瀛橀〉闈紝绂诲紑鏃讹紝鍜岃繘鍏ユ椂鍙栨秷/寮�鍚闃呬簨浠� * @returns */ -export const usePageDisplay = (pageShow?: () => void, pageHide?: () => void) => { - const haveExecutedMounted = ref(false); - onActivated(() => { - if (!haveExecutedMounted.value) { - return; - } - pageShow?.(); - }); +export const usePageDisplay = (pageShow?: () => void, pageHide?: () => void, needExecutedMounted = true) => { + const haveExecutedMounted = ref(!needExecutedMounted); + const currentRoute = router.currentRoute.value; - onDeactivated(() => { - pageHide?.(); - }); + const isKeepAlive = currentRoute.meta.isKeepAlive ?? false; + if (isKeepAlive) { + onActivated(() => { + if (!haveExecutedMounted.value) { + return; + } + pageShow?.(); + }); + + onDeactivated(() => { + pageHide?.(); + }); + } else { + onMounted(() => { + pageShow?.(); + }); + onBeforeUnmount(() => { + pageHide?.(); + }); + } return { - haveExecutedMounted - }; + haveExecutedMounted, + }; }; -- Gitblit v1.9.3