123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <script setup lang="ts">
- import { storeToRefs } from 'pinia'
- import useAppStore from '@/stores/modules/app'
- import useRouteCache from '@/stores/modules/routeCache'
- import useRouteTransitionNameStore from '@/stores/modules/routeTransitionName'
- import useAutoThemeSwitcher from '@/hooks/useAutoThemeSwitcher'
- useHead({
- title: 'Vue3 Vant Mobile',
- meta: [
- {
- name: 'description',
- content: 'Vue + Vite H5 Starter Template',
- },
- {
- name: 'theme-color',
- content: () => isDark.value ? '#00aba9' : '#ffffff',
- },
- ],
- link: [
- {
- rel: 'icon',
- type: 'image/svg+xml',
- href: () => preferredDark.value ? '/favicon-dark.svg' : '/favicon.svg',
- },
- ],
- })
- const appStore = useAppStore()
- const { mode } = storeToRefs(appStore)
- const routeTransitionNameStore = useRouteTransitionNameStore()
- const { routeTransitionName } = storeToRefs(routeTransitionNameStore)
- const { initializeThemeSwitcher } = useAutoThemeSwitcher(appStore)
- const keepAliveRouteNames = computed(() => {
- return useRouteCache().routeCaches as string[]
- })
- onMounted(() => {
- initializeThemeSwitcher()
- })
- </script>
- <template>
- <VanConfigProvider :theme="mode">
- <NavBar />
- <router-view v-slot="{ Component, route }">
- <transition :name="routeTransitionName">
- <keep-alive :include="keepAliveRouteNames">
- <component :is="Component" :key="route.name" />
- </keep-alive>
- </transition>
- </router-view>
- <TabBar />
- </VanConfigProvider>
- </template>
|