1
- import { createRouter , createWebHistory , useRoute } from '../../src'
1
+ import { createRouter , createWebHistory } from '../../src'
2
2
import { RouteComponent } from '../../src/types'
3
- import { createApp , nextTick } from 'vue'
3
+ import { createApp , defineComponent , nextTick , ref } from 'vue'
4
4
5
5
const Home : RouteComponent = {
6
6
template : `
@@ -56,6 +56,16 @@ const Parent: RouteComponent = {
56
56
` ,
57
57
}
58
58
59
+ const NestedTransition = defineComponent ( {
60
+ template : `
61
+ <router-view class="nested-view" mode="out-in" v-slot="{ Component }">
62
+ <transition name="none">
63
+ <component :is="Component" />
64
+ </transition>
65
+ </router-view>
66
+ ` ,
67
+ } )
68
+
59
69
const Default : RouteComponent = {
60
70
template : '<div class="default">default</div>' ,
61
71
}
@@ -76,29 +86,49 @@ const router = createRouter({
76
86
{ path : 'bar' , component : Bar } ,
77
87
] ,
78
88
} ,
89
+
90
+ {
91
+ path : '/nested' ,
92
+ component : NestedTransition ,
93
+ children : [
94
+ { path : '' , component : Default } ,
95
+ { path : 'foo' , component : Foo } ,
96
+ { path : 'bar' , component : Bar } ,
97
+ ] ,
98
+ } ,
79
99
] ,
80
100
} )
81
101
const app = createApp ( {
82
102
setup ( ) {
103
+ const transitionName = ref ( 'fade' )
104
+ function toggleTransition ( ) {
105
+ transitionName . value = transitionName . value === 'fade' ? 'none' : 'fade'
106
+ }
107
+
83
108
return {
84
- show : true ,
85
- route : useRoute ( ) ,
109
+ transitionName ,
110
+ toggleTransition ,
86
111
}
87
112
} ,
88
113
89
114
template : `
90
115
<div id="app">
91
116
<h1>Transitions</h1>
92
117
<pre>CI: ${ __CI__ } </pre>
118
+ <button id="toggle-transition" @click="toggleTransition">Toggle Transition</button>
93
119
<ul>
94
120
<li><router-link to="/">/</router-link></li>
95
121
<li><router-link to="/parent">/parent</router-link></li>
96
122
<li><router-link to="/parent/foo">/parent/foo</router-link></li>
97
123
<li><router-link to="/parent/bar">/parent/bar</router-link></li>
98
124
<li><router-link to="/not-found">Not existing</router-link></li>
125
+
126
+ <li><router-link to="/nested">/nested</router-link></li>
127
+ <li><router-link to="/nested/foo">/nested/foo</router-link></li>
128
+ <li><router-link to="/nested/bar">/nested/bar</router-link></li>
99
129
</ul>
100
130
<router-view class="view" v-slot="{ Component }">
101
- <transition name="fade " mode="out-in">
131
+ <transition : name="transitionName " mode="out-in">
102
132
<component :is="Component" />
103
133
</transition>
104
134
</router-view>
0 commit comments