Skip to content

Commit 6b71b6f

Browse files
committed
refactor: dark mode toggle with computed props
1 parent a2ef49d commit 6b71b6f

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

src/pages/index.vue

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ import { languageColumns, locale } from '@/utils/i18n'
44
55
const { t } = useI18n()
66
7+
const checked = computed({
8+
get: () => isDark.value,
9+
set: () => toggleDark(),
10+
})
11+
712
const menuItems = computed(() => ([
813
{ title: t('menus.mockGuide'), route: 'mock' },
914
{ title: t('menus.echartsDemo'), route: 'charts' },
@@ -22,41 +27,29 @@ function onLanguageConfirm(event: { selectedOptions: PickerColumn }) {
2227
locale.value = event.selectedOptions[0].value as string
2328
showLanguagePicker.value = false
2429
}
25-
26-
const checked = ref<boolean>(isDark.value)
27-
28-
watchEffect(() => {
29-
checked.value = isDark.value
30-
})
31-
32-
function toggle(val: boolean) {
33-
checked.value = val
34-
toggleDark()
35-
}
3630
</script>
3731

3832
<template>
39-
<van-cell-group :title="t('menus.basicSettings')" :border="false" :inset="true">
40-
<van-cell center :title="t('menus.darkMode')">
33+
<van-cell-group :title="$t('menus.basicSettings')" :border="false" :inset="true">
34+
<van-cell center :title="$t('menus.darkMode')">
4135
<template #right-icon>
4236
<van-switch
4337
v-model="checked"
4438
size="20px"
4539
aria-label="on/off Dark Mode"
46-
@change="toggle"
4740
/>
4841
</template>
4942
</van-cell>
5043

5144
<van-cell
5245
is-link
53-
:title="t('menus.language')"
46+
:title="$t('menus.language')"
5447
:value="language"
5548
@click="showLanguagePicker = true"
5649
/>
5750
</van-cell-group>
5851

59-
<van-cell-group :title="t('menus.exampleComponents')" :border="false" :inset="true">
52+
<van-cell-group :title="$t('menus.exampleComponents')" :border="false" :inset="true">
6053
<template v-for="item in menuItems" :key="item.route">
6154
<van-cell :title="item.title" :to="item.route" is-link />
6255
</template>

0 commit comments

Comments
 (0)