vue3.x教程:路由传参-params方式 作者:马育民 • 2026-08-01 16:32 • 阅读:10008 # 说明 实现下图效果: [](https://www.malaoshi.top/upload/pic/vue/Snipaste_2022-02-10_22-31-51.png) 点击 `张老师`,传参给 `TeacherInfo` 组件,该组件 **获取参数** `id` 和 `name`,并显示 # params 方式传参 本文通过 **params** 方式实现 **特点:** url可以看到参数,[RESTful](https://www.malaoshi.top/show_1EF5resN8LL7.html "RESTful") 风格,如下: ``` http://localhost:8080/#/teacher/teacherInfo/1/张老师 ``` ### 注意:不能用路由 path 跳转 `` 用 路由的 `name`,不能用 路由的 `path`,否则会不好使 # 与 query 传参相比 - 只能用 路由的 `name`,不能用 `path` - url是 restful 风格 - 需要修改路由 # 修改 Teacher.vue 组件 修改 `Teacher.vue` 组件,该组件是 **发送参数** 页面 ### params 传参方式 **格式:** ``` ... ``` **例子:** ``` {{item.name}} ``` **注意:** `path: 'teacherInfo/:id/:name'` 中的参数 与 `` 中的参数,要匹配,否则页面不显示参数 ### 完整代码 ``` Teacher组件(绿色框) 教师列表(路由传参) {{item.name}} 关键:显示路由组件 ``` # 创建 TeacherInfo.vue 组件 该组件用于接收参数,显示老师信息 ### 获取 params参数方式 **格式:** ``` {{route.params.key}} ``` **例子:** ``` {{route.params.id}} ``` ### 完整代码 在 `views` 目录下创建 `TeacherInfo.vue` 路由组件,内容如下: ``` TeacherInfo组件(红色框) 传入参数 id:{{route.params.id}} 传入参数 name:{{route.params.name}} ``` # 修改 路由文件 定义路由时,需要在 `path` 后面加上占位符,表示接收 params 参数,如下: ``` { // 必须给路由命名,因为 params 传参,不能通过 path 跳转 name: 'teacherInfo', // 关键:路由后面加上占位符,:id。注意:中的参数要与此参数匹配,否则页面不显示参数 path: 'teacherInfo/:id/:name', component: teacherInfo, } ``` **注意:** - 必须给路由命名,因为 params 传参,不能通过 path 跳转(因为 path 会动态改变) - `path: 'teacherInfo/:id/:name'` 中的参数 与 `` 中的参数,要匹配,否则页面不显示参数 ### 完整代码 修改 `src/router/index.js` 路由文件,添加 `teacherInfo` 路由,如下: ``` // 引入 import {createRouter, createWebHashHistory} from 'vue-router' //引入组件 import student from '@/views/Student.vue' import teacher from '@/views/Teacher.vue' import exam from '@/views/Exam.vue' import homework from '@/views/Homework.vue' import teacherInfo from '@/views/TeacherInfo.vue' // 创建路由器,需要传入 {} 对象 // (一个工程只需要创建一个路由器对象) const router = createRouter({ history: createWebHashHistory(), // 路由器的工作模式 routes : [ // 注意:是 routes,不是router,其value是数组,数组里面的元素是 {} 对象 { path: '/', redirect:'/student' }, { path: '/student', //路径,相当于标签的href,关键:必须以 “/” 开头 component: student, //组件 children:[ { name: 'exam',//关键:路由名字 path: 'exam', //关键:二级路由路径,前面不要加 “/” component: exam, //组件 }, { name: 'homework',//关键:路由名字 path: 'homework', //关键:二级路由路径,前面不要加 “/” component: homework, //组件 } ] }, { path: '/teacher', //路径 component: teacher, //组件 children:[ { // 必须给路由命名,因为 params 传参,不能通过 path 跳转 name: 'teacherInfo', // 关键:路由后面加上占位符,:id。注意:中的参数要与此参数匹配,否则页面不显示参数 path: 'teacherInfo/:id/:name', // 指定 teacherInfo 组件 component: teacherInfo, } ] } ] }) // 暴露路由,让其他页面可以使用 export default router ``` # 总结 [](/upload/0/0/1IX3Gh9dcjuZ.png) 原文出处:http://www.malaoshi.top/show_1GW3mcq0sILm.html