Vue 3.x 安装及路由配置、动态路由、Get传值路由

276 阅读1分钟

一、安装及配置路由

1、安装路由模块

npm install vue-router@4 --save

2、components文件夹中新建组件Home.vue和User.vue

//Home.vue
<template>
    我是Home组件
</template>

//User.vue
<template>
    我是User组件
</template>

3、配置路由

在src文件夹下新建routes.ts文件

import { createRouter, createWebHashHistory } from 'vue-router'

import Home from './components/Home.vue'
import User from './components/User.vue'

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        { path: '/home', component: Home },
        { path: '/user', component: User },
    ],
})

export default router

4、在main中挂载路由

import { createApp } from 'vue'
import App from './App.vue'
import route from './routes';

const app = createApp(App);
app.use(route);
app.mount('#app');

5、渲染组件及路由跳转

在App.vue中

<template>
<router-link to="/home">跳转到Home</router-link>
<router-link to="/user">跳转到User</router-link>
<router-view></router-view>
</template>

二、动态路由

1、配置动态路由

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        { path: '/home', component: Home },
        { path: '/user', component: User },
        { path: '/userDetails/:myID', component: UserDetails }, //动态路由
    ],
})

2、动态路由跳转

<router-link :to="`/userDetails/${111}`">跳转到用户详情并传入myID=111</router-link>

3、在UserDetails组件中获取myID的值

this.$route.params

三、Get传值路由

1、配置路由

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        { path: '/home', component: Home },
        { path: '/user', component: User },
        { path: '/userDetails, component: UserDetails }, //Get传值
    ],
})

2、动态路由跳转

<router-link :to="`/userDetails?myID=111`">跳转到用户详情并传入myID=111</router-link>

3、在UserDetails组件中获取myID的值

this.$route.query

四、JS跳转路由

this.$router.push({ path: '/home' });
this.$router.push({ path: '/userDetails/111' }); //需配置动态路由
this.$router.push({ path: '/userDetails',  query:{myID:111} }); //配置Get传值路由即可

五、命名路由跳转及传值

1、配置路由

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        { path: '/home', component: Home },
        { path: '/user', component: User },
        { path: '/userDetails/:myID, name: 'myUserDetails' component: UserDetails }, //动态路由传值
        { path: '/userDetails, name: 'myUserDetailsGet' component: UserDetails }, //Get传值
    ],
})

2、命名动态路由

<router-link :to="{ name: 'myUserDetails', params: { myID: 111 }}">跳转</router-link>

this.$router.push({ name: 'myUserDetails', params: { myID: 111 }})

3、Get传值路由

<router-link :to="{ name: 'myUserDetailsGet', query: { myID: 111 }}">跳转</router-link>

this.$router.push({ name: 'myUserDetailsGet', query: { myID: 111 }})

六、路由重定向

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        { path: '', redirect:"/home" },  //路由重定向,当输入空的时候跳转到home页
        { path: '', redirect: { name: 'myUserDetailsGet' }},  //针对命名路由
        { path: '/home', component: Home },
        { path: '/user', component: User },
        { path: '/userDetails/:myID, name: 'myUserDetails' component: UserDetails }, //动态路由传值
        { path: '/userDetails, name: 'myUserDetailsGet' component: UserDetails }, //Get传值命名路由
    ],
})

七、别名路由

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        { path: '/home', component: Home },
        { path: '/user', component: User },
        { path: '/userDetails/:myID, name: 'myUserDetails', alias:"/u:myID" component: UserDetails }, //动态路由传值
        { path: '/userDetails, name: 'myUserDetailsGet', alias:["/u","/s"] component: UserDetails }, //Get传值命名路由
    ],
})