From 0e380b34a3fbb5c1723e608b9dc0399d821d41d0 Mon Sep 17 00:00:00 2001 From: estel <690930@qq.com> Date: Sat, 9 Aug 2025 22:28:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B7=E5=BC=8F=E4=B8=8Eli?= =?UTF-8?q?nt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/AppHeader.vue | 144 ----------------------------- app/components/blog/BlogHeader.vue | 9 ++ app/components/docs/DocsHeader.vue | 9 ++ app/components/shared/wxShare.vue | 2 - app/composables/useTheme.ts | 32 +++++-- 5 files changed, 42 insertions(+), 154 deletions(-) delete mode 100644 app/components/AppHeader.vue diff --git a/app/components/AppHeader.vue b/app/components/AppHeader.vue deleted file mode 100644 index d8f647d..0000000 --- a/app/components/AppHeader.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - diff --git a/app/components/blog/BlogHeader.vue b/app/components/blog/BlogHeader.vue index 3c0b0ce..d77c219 100644 --- a/app/components/blog/BlogHeader.vue +++ b/app/components/blog/BlogHeader.vue @@ -49,6 +49,15 @@ const handleLoginRegister = (type: 'login' | 'register') => { mode="modal" class="bg-gray-50 dark:bg-gray-900" > + diff --git a/app/components/docs/DocsHeader.vue b/app/components/docs/DocsHeader.vue index 2cbdeb9..aced9d9 100644 --- a/app/components/docs/DocsHeader.vue +++ b/app/components/docs/DocsHeader.vue @@ -49,6 +49,15 @@ const handleLoginRegister = (type: 'login' | 'register') => { mode="modal" class="bg-gray-50 dark:bg-gray-900" > + diff --git a/app/components/shared/wxShare.vue b/app/components/shared/wxShare.vue index 9e4daa4..a1e7b1a 100644 --- a/app/components/shared/wxShare.vue +++ b/app/components/shared/wxShare.vue @@ -98,8 +98,6 @@ function setupShare(appId: string, timestamp: number, nonceStr: string, signatur console.error('[WxShare] wx.error:', e) }) } - - * ``` */ -import { ref, watch } from 'vue' +import { ref, watch, getCurrentInstance, onMounted } from 'vue' // 定义各种选项 const themes = [ @@ -224,18 +224,34 @@ export function useTheme() { } } - // 确保在客户端时立即初始化 + // 确保在客户端时初始化 if (import.meta.client) { // 立即初始化,避免闪烁 initializeTheme() - // 确保在DOM准备好后再次应用 - onMounted(() => { - applyThemeVariables() - if (selectedThemeColor.value === 'custom') { - applyCustomColor() + const instance = getCurrentInstance() + if (instance) { + // 在组件 setup 上下文中,安全使用 onMounted + onMounted(() => { + applyThemeVariables() + if (selectedThemeColor.value === 'custom') { + applyCustomColor() + } + }) + } else { + // 非组件上下文(如插件)中,等待文档就绪后应用 + const run = () => { + applyThemeVariables() + if (selectedThemeColor.value === 'custom') { + applyCustomColor() + } } - }) + if (document.readyState === 'loading') { + window.addEventListener('DOMContentLoaded', () => run(), { once: true }) + } else { + run() + } + } } const resetSettings = () => {