-
路由跳转
-
核心代码
import { useRouter,useRoute } from 'vue-router'; const $router = useRouter() const $route = useRoute() const toAbout = () => {console.log($router)$router.push('/about/888') } -
全部代码
-
常量路由
export const constantRoute = [{path: '/about/:id',component:()=> import('../vue-base/about1.vue')},{path: '/',component:()=> import('../vue-base/home.vue')},{path: '/about',component:()=> import('../vue-base/about.vue')},{ path: '/:pathMatch(.*)*', name: 'NotFound', component: ()=>import('../vue-base/404.vue') },] -
home.vue
<template><div><h1>我是home</h1><router-link to="/about/123">Go to about1</router-link><br><button @click="toAbout">点我前往About页面</button></div> </template><script setup lang="ts"> import { useRouter } from 'vue-router'; let $router = useRouter() const toAbout = () => {console.log($router)$router.push('/about') } </script><style scoped></style> -
about.vue
<template><div><h1>about</h1><router-link to="/home">Go to Home</router-link><br><button @click="toAbout">点我前往About1页面</button></div> </template><script setup lang="ts"> import { useRouter,useRoute } from 'vue-router'; const $router = useRouter() const $route = useRoute() console.log($route) const toAbout = () => {console.log($router)$router.push('/about/888') } </script><style scoped></style> -
about1.vue
<template><div>home1<br><button @click="toHome">点我也可以前往Home页面</button><h1>{{ params}}</h1></div> </template><script setup lang="ts"> import { useRouter,useRoute } from 'vue-router'; import { ref,computed } from 'vue'; let params = ref() const $router = useRouter() const $route = useRoute() console.log($route) params.value = computed(()=> Number($route.params.id) ) const toHome = () => {console.log($router)$router.push('/') } </script><style scoped></style> -
效果
-
home

-
about

-
about1

-
404

-
-
-
-
带参数的动态路由匹配
- 核心代码
export const constantRoute = [{path: '/about/:id',component:()=> import('../vue-base/about1.vue')}, ] -
匹配途径

- 核心代码
-
404路由
- 核心代码
export const constantRoute = [{ path: '/:pathMatch(.*)*', name: 'NotFound', component: ()=>import('../vue-base/404.vue') }, ]
- 核心代码
-
嵌套路由
- 核心代码
export const constantRoute = [{path: '/about/:id',component:()=> import('../vue-base/about1.vue'),redirect:'/about/:id/AboutChildren1',children:[{path:'AboutChildren1',component:()=>import('../vue-base/aboutChildren1.vue')},{path:'AboutChildren2',component:()=>import('../vue-base/aboutChildren2.vue')}]} ] - about1.vue
<template><div>about1<br><button @click="toHome">点我也可以前往Home页面</button><h1>{{ params}}</h1><button @click="toAboutChildren">点我可以前往AboutChildren页面</button><router-view></router-view></div> </template><script setup lang="ts"> import { useRouter,useRoute } from 'vue-router'; import { ref,computed } from 'vue'; let params = ref() const $router = useRouter() const $route = useRoute() console.log($route) params.value = computed(()=> Number($route.params.id) ) const toHome = () => {console.log($router)$router.push('/') } const toAboutChildren = ()=>{$router.push('/about/8888/AboutChildren1') }</script><style scoped></style> - aboutChildren1.vue
<template><div><h1>我是AboutChildren1</h1><br><router-link to="/"></router-link></div> </template><script setup lang="ts"></script><style scoped></style> - aboutChildren2.vue
<template><div><h1>我是AboutChildren2</h1><br><router-link to="/"></router-link></div> </template><script setup lang="ts"></script><style scoped></style> - 效果
- about

- aboutChildren1

- aboutChildren2

- about
- 核心代码