<a href="/documents/€">/documents/€ (force reload): not valid tho</a>
</li>
<li>
- <router-link to="/">Home (redirects)</router-link>
+ <router-link to="/home">Home (redirects)</router-link>
</li>
<li>
- <router-link to="/home">Home</router-link>
+ <router-link to="/">Home</router-link>
+ </li>
+ <li>
+ <router-link to="/always-redirect">/always-redirect</router-link>
</li>
<li>
<router-link to="/nested">/nested</router-link>
<li>
<router-link to="/rep/a/b">/rep/a/b</router-link>
</li>
+ <li>
+ <router-link to="/parent/1">/parent/1</router-link>
+ </li>
+ <li>
+ <router-link to="/p/1">/p/1</router-link>
+ </li>
+ <li>
+ <router-link to="/parent/1/as-absolute-a"
+ >/parent/1/as-absolute-a</router-link
+ >
+ </li>
+ <li>
+ <router-link to="/p/1/as-absolute-a">/p/1/as-absolute-a</router-link>
+ </li>
+ <li>
+ <router-link to="/p_1/absolute-a">/p_1/absolute-a</router-link>
+ </li>
</ul>
<!-- <transition
name="fade"
import { createRouter, createWebHistory } from '../src'
import Home from './views/Home.vue'
import Nested from './views/Nested.vue'
+import NestedWithId from './views/NestedWithId.vue'
import Dynamic from './views/Dynamic.vue'
import User from './views/User.vue'
import NotFound from './views/NotFound.vue'
export const router = createRouter({
history: routerHistory,
routes: [
+ { path: '/home', redirect: '/' },
{ path: '/', component: Home },
+ {
+ path: '/always-redirect',
+ component: Home,
+ beforeEnter: (to, from, next) =>
+ next('/users/' + Math.round(Math.random() * 100)),
+ },
{ path: '/users/:id', name: 'user', component: User, props: true },
{ path: '/documents/:id', name: 'docs', component: User },
{ path: encodeURI('/n/€'), name: 'euro', component },
component: Nested,
name: 'NestedOther',
},
+ {
+ path: 'also-as-absolute',
+ alias: '/absolute',
+ name: 'absolute-child',
+ component: Nested,
+ },
+ ],
+ },
+
+ {
+ path: '/parent/:id',
+ name: 'parent',
+ component: NestedWithId,
+ props: true,
+ alias: '/p/:id',
+ children: [
+ // empty child
+ { path: '', component },
+ // child with absolute path. we need to add an `id` because the parent needs it
+ { path: '/p_:id/absolute-a', alias: 'as-absolute-a', component },
+ // same as above but the alias is absolute
+ { path: 'as-absolute-b', alias: '/p_:id/absolute-b', component },
],
},
{
<div>Home</div>
<p>My Data is: {{ someData }}</p>
toggle: {{ log(toggle) }}
+ <button @click="counter++">{{ counter }}</button>
</div>
</template>
name: 'Home',
data: () => ({
toggle: false,
+ counter: 0,
}),
setup() {
<li>
<router-link to="/anidado/otherAlias">/anidado/otherAlias</router-link>
</li>
+ <li>
+ <router-link to="/nested/also-as-absolute"
+ >/nested/also-as-absolute</router-link
+ >
+ </li>
+ <li>
+ <router-link to="/absolute">/absolute</router-link>
+ </li>
+ <li>
+ <router-link :to="{ name: 'absolute-child' }"
+ >/absolute (named)</router-link
+ >
+ </li>
</ul>
<router-view v-if="level < 6"></router-view>
</div>
--- /dev/null
+<template>
+ <div>
+ <p>Nested level {{ level }}</p>
+ <pre>{{ props }}</pre>
+ <ul v-if="level === 1">
+ <li>
+ <router-link to="/nested/nested">/nested/nested</router-link>
+ </li>
+ <li>
+ <router-link to="/anidado/nested">/anidado/nested</router-link>
+ </li>
+ <li>
+ <router-link to="/anidado/a">/anidado/a</router-link>
+ </li>
+ </ul>
+ <router-view v-if="level < 6"></router-view>
+ </div>
+</template>
+
+<script>
+import { defineComponent, inject, provide } from 'vue'
+// import { guardSymbol } from '../../src/components/View'
+
+export default defineComponent({
+ props: ['id'],
+ name: 'NestedWithId',
+ setup(props) {
+ const level = inject('level', 1)
+ provide('level', level + 1)
+ // const registerGuard = inject(guardSymbol)
+ // await registerGuard()
+ // console.log('done waiting')
+
+ return {
+ props,
+ level,
+ }
+ },
+})
+</script>