From 8f0f3e87f700c70b5226bbe4f2ac423d22e85d5a Mon Sep 17 00:00:00 2001 From: yizhankui <2669587581@qq.com> Date: Sat, 11 Feb 2023 20:00:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(DarkToggle):=20=E7=BB=84=E4=BB=B6=E7=94=9F?= =?UTF-8?q?=E5=91=BD=E7=BB=93=E6=9D=9F=E5=8F=96=E6=B6=88=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components/Uno/DarkToggle.vue | 28 ++++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/frontend/components/Uno/DarkToggle.vue b/frontend/components/Uno/DarkToggle.vue index ca280c9..76c5a91 100644 --- a/frontend/components/Uno/DarkToggle.vue +++ b/frontend/components/Uno/DarkToggle.vue @@ -24,20 +24,26 @@ if (process.client) { setItem() } + onMounted(() => { // 上面操作只会在页面加载时才会生效,因此,需要给media添加事件监听器 - media.addEventListener('change', (e) => { - if (e.matches) - setDark() - else - setLight() - }) + media.addEventListener('change', (e) => { + if (e.matches) + setDark() + else + setLight() + }) - window.addEventListener('storage', (e) => { - if (e.newValue === 'light') - setLight() + window.addEventListener('storage', (e) => { + if (e.newValue === 'light') + setLight() - else - setDark() + else + setDark() + }) + }) + onUnmounted(() => { + media.removeEventListener('change', (e) => {}, true) + window.removeEventListener('storage', (e) => {}, true) }) }