From 0b517855b6598a3fd27d79752fb7cd9c4e12e1a1 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Mon, 25 Nov 2024 11:09:23 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86=20?= =?UTF-8?q?composable=20=E4=BB=A3=E7=A0=81=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/composables/useTheme.ts | 1 + src/composables/useTitle.ts | 2 +- src/composables/useWatermark.ts | 17 ++++++----------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/composables/useTheme.ts b/src/composables/useTheme.ts index 8901a852..8181f1ac 100644 --- a/src/composables/useTheme.ts +++ b/src/composables/useTheme.ts @@ -2,6 +2,7 @@ import { getActiveThemeName, setActiveThemeName } from "@/utils/cache/local-stor import { ref, watchEffect } from "vue" const DEFAULT_THEME_NAME = "normal" + type DefaultThemeName = typeof DEFAULT_THEME_NAME /** 注册的主题名称, 其中 DefaultThemeName 是必填的 */ diff --git a/src/composables/useTitle.ts b/src/composables/useTitle.ts index 61a48fac..1b2ce834 100644 --- a/src/composables/useTitle.ts +++ b/src/composables/useTitle.ts @@ -11,7 +11,7 @@ function setTitle(title?: string) { dynamicTitle.value = title ? `${VITE_APP_TITLE} | ${title}` : VITE_APP_TITLE } -/** 监听标题变化 */ +// 监听标题变化 watch(dynamicTitle, (value, oldValue) => { if (document && value !== oldValue) { document.title = value diff --git a/src/composables/useWatermark.ts b/src/composables/useWatermark.ts index fd7b0f0e..a7b0462a 100644 --- a/src/composables/useWatermark.ts +++ b/src/composables/useWatermark.ts @@ -8,10 +8,10 @@ interface Observer { parentElResizeObserver?: ResizeObserver } -type DefaultConfig = typeof defaultConfig +type DefaultConfig = typeof DEFAULT_CONFIG /** 默认配置 */ -const defaultConfig = { +const DEFAULT_CONFIG = { /** 防御(默认开启,能防御水印被删除或隐藏,但可能会有性能损耗) */ defense: true, /** 文本颜色 */ @@ -54,14 +54,11 @@ export function useWatermark(parentEl: Ref = bodyEl) { /** 设置水印 */ const setWatermark = (text: string, config: Partial = {}) => { - if (!parentEl.value) { - console.warn("请在 DOM 挂载完成后再调用 setWatermark 方法设置水印") - return - } + if (!parentEl.value) return console.warn("请在 DOM 挂载完成后再调用 setWatermark 方法设置水印") // 备份文本 backupText = text // 合并配置 - mergeConfig = { ...defaultConfig, ...config } + mergeConfig = { ...DEFAULT_CONFIG, ...config } // 创建或更新水印元素 watermarkEl ? updateWatermarkEl() : createWatermarkEl() // 监听水印元素和容器元素的变化 @@ -228,10 +225,8 @@ export function useWatermark(parentEl: Ref = bodyEl) { observer.parentElResizeObserver.observe(targetNode) } - /** 在组件卸载前移除水印以及各种监听 */ - onBeforeUnmount(() => { - clearWatermark() - }) + // 在组件卸载前移除水印以及各种监听 + onBeforeUnmount(() => clearWatermark()) return { setWatermark, clearWatermark } }