vue3.x教程:路由-编程式导航传参-query方式 作者:马育民 • 2026-08-01 19:23 • 阅读:10010 # 说明 本文通过 **query** 方式实现,实现下图效果: [](https://www.malaoshi.top/upload/pic/vue/Snipaste_2022-02-13_11-42-16.png) 点击 按钮 `显示 张老师 信息`,传参给 `TeacherInfo` 组件,该组件显示参数 `id` 和 `name` # 特点 url可以看到参数,相当于 javaweb中的url传参,如下图: [](https://www.malaoshi.top/upload/pic/vue/Snipaste_2022-02-10_23-20-42.png) # 与 params 传参相比 - 简单,不需要修改路由 - url是 `url?参数名=值` 的方式 # 传参 修改 Teacher.vue 组件 **格式:** ``` router.push({ path:'路由 path', // 根据路由 path 导航 query: { // query 传参数 key1: value2, key2: value2 } }) ``` ### 例子 ``` router.push({ path:'/teacher/teacherInfo', // 根据路由 path 导航 query: { // query 传参数 id: data.id, //参数 name: data.name //参数 } }) ``` # 接收参数 **格式:** ``` {{route.query.key}} ``` ### 例子 ``` {{route.query.id}} ``` # 修改Teacher.vue 修改 `Teacher.vue` 组件,该组件是 **发送参数** 页面 ``` Teacher组件(绿色框) 教师列表(路由传参) {{item.name}} 关键:显示路由组件 ``` ### 接收参数页面 在 `views` 目录下创建 `TeacherInfo.vue` 路由组件,内容如下: ``` TeacherInfo组件(红色框) 传入参数 id:{{route.query.id}} 传入参数 name:{{route.query.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:[ { path: 'teacherInfo',//添加 teacherInfo 的 path component: teacherInfo,//指定 teacherInfo 组件 } ] } ] }) // 暴露路由,让其他页面可以使用 export default router ``` 原文出处:http://www.malaoshi.top/show_1GW3mfMx0j4Z.html