File tree Expand file tree Collapse file tree 5 files changed +31
-29
lines changed Expand file tree Collapse file tree 5 files changed +31
-29
lines changed Original file line number Diff line number Diff line change 1
1
<script setup lang="ts">
2
2
import type { ConfigProviderTheme } from ' vant'
3
- import { useRouteTransitionNameHook } from ' @/stores/modules/routeTransitionName'
3
+ import { storeToRefs } from ' pinia'
4
+ import useRouteTransitionNameStore from ' @/stores/modules/routeTransitionName'
4
5
5
6
const theme = ref <ConfigProviderTheme >(' light' )
6
7
provide (' isRealDark' , computed (() => theme .value === ' dark' ))
8
+
9
+ const routeTransitionNameStore = useRouteTransitionNameStore ()
10
+ const { routeTransitionName } = storeToRefs (routeTransitionNameStore )
7
11
</script >
8
12
9
13
<template >
10
14
<VanConfigProvider :theme =" theme" >
11
15
<router-view v-slot =" { Component, route }" >
12
- <transition :name =" useRouteTransitionNameHook(). routeTransitionName" >
16
+ <transition :name =" routeTransitionName" >
13
17
<div :key =" route.name" class =" app-wrapper" >
14
18
<component :is =" Component" />
15
19
</div >
Original file line number Diff line number Diff line change 1
1
import { createApp } from 'vue'
2
- import { createPinia } from 'pinia'
3
- import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
4
2
import App from '@/App.vue'
5
3
import router from '@/router'
4
+ import pinia from '@/stores'
6
5
7
6
import 'virtual:uno.css'
8
7
@@ -23,8 +22,6 @@ import 'vant/es/notify/style'
23
22
import 'vant/es/image-preview/style'
24
23
25
24
const app = createApp ( App )
26
- const pinia = createPinia ( )
27
- pinia . use ( piniaPluginPersistedstate )
28
25
29
26
app . use ( router )
30
27
app . use ( pinia )
Original file line number Diff line number Diff line change 1
1
import { createRouter , createWebHistory } from 'vue-router/auto'
2
2
import NProgress from 'nprogress'
3
3
4
- import { useRouteTransitionNameHook } from '@/stores/modules/routeTransitionName'
4
+ import useRouteTransitionNameStore from '@/stores/modules/routeTransitionName'
5
5
import 'nprogress/nprogress.css'
6
6
7
7
NProgress . configure ( { showSpinner : true , parent : '#app' } )
8
+
8
9
const router = createRouter ( {
9
10
history : createWebHistory ( import . meta. env . VITE_APP_PUBLIC_PATH ) ,
10
11
} )
11
12
12
13
router . beforeEach ( ( to , from , next ) => {
13
14
NProgress . start ( )
14
- const hook = useRouteTransitionNameHook ( )
15
+
16
+ const routeTransitionNameStore = useRouteTransitionNameStore ( )
15
17
if ( to . meta . level > from . meta . level )
16
- hook . setName ( 'slide-fadein-left' ) // 进入动画
18
+ routeTransitionNameStore . setName ( 'slide-fadein-left' )
17
19
18
20
else if ( to . meta . level < from . meta . level )
19
- hook . setName ( 'slide-fadein-right' ) // 返回动画
21
+ routeTransitionNameStore . setName ( 'slide-fadein-right' )
20
22
21
23
else
22
- hook . setName ( '' ) // 没有动画
24
+ routeTransitionNameStore . setName ( '' )
23
25
24
26
next ( )
25
27
} )
@@ -28,5 +30,4 @@ router.afterEach(() => {
28
30
NProgress . done ( )
29
31
} )
30
32
31
- // 导出路由实例,并在 `main.ts` 挂载
32
33
export default router
Original file line number Diff line number Diff line change 1
1
import { createPinia } from 'pinia'
2
+ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
2
3
3
- const store = createPinia ( )
4
- export { store }
4
+ const pinia = createPinia ( )
5
+ pinia . use ( piniaPluginPersistedstate )
6
+
7
+ export default pinia
Original file line number Diff line number Diff line change 1
1
import { defineStore } from 'pinia'
2
- import { store } from '@/stores'
3
2
4
- export const useRouteTransitionNameStore = defineStore ( {
5
- id : 'route-transition-name' ,
6
- state : ( ) => ( {
7
- // 过渡动画名称
8
- routeTransitionName : '' ,
9
- } ) ,
10
- actions : {
11
- setName ( name : string ) {
12
- this . routeTransitionName = name
13
- } ,
14
- } ,
3
+ const useRouteTransitionNameStore = defineStore ( 'route-transition-name' , ( ) => {
4
+ const routeTransitionName = ref ( '' )
5
+
6
+ const setName = ( name : string ) => {
7
+ routeTransitionName . value = name
8
+ }
9
+
10
+ return {
11
+ routeTransitionName,
12
+ setName ,
13
+ }
15
14
} )
16
15
17
- export function useRouteTransitionNameHook ( ) {
18
- return useRouteTransitionNameStore ( store )
19
- }
16
+ export default useRouteTransitionNameStore
You can’t perform that action at this time.
0 commit comments