Vue 动态路由参数怎么拿?教你如何用 params 和 query 传参的教程

陌磊君_7334

陌磊君_7334

2026-04-07

441人浏览

原创

Vue中动态获取路由参数需配合配置、取值与使用:params用于必需路径参数(如/user/:id),须用name跳转并在$route.params中读取;query用于可选筛选参数(如/search?q=vue),通过$route.query获取;同组件内参数变化需监听$route或使用导航守卫。

vue 动态路由参数怎么拿?教你如何用 params 和 query 传参的教程

在 Vue 中动态获取路由参数,主要靠 $route.params 和 $route.query,它们分别对应 URL 中的动态路径段和查询字符串。关键不是“怎么传”,而是“怎么配 + 怎么取 + 怎么用”,下面直接说清楚。

params 传参:适合 ID、名称等必需路径参数

params 必须配合动态路由定义使用,比如 /user/:id 或 /post/:slug。它不会出现在 URL 查询栏里,而是嵌在路径中,刷新页面也不会丢失(因为是路径的一部分)。

  • 在 router 配置中定义: { path: '/user/:id', component: User }
  • 编程式导航跳转:this.$router.push({ name: 'User', params: { id: 123 } })
  • 在组件中取值:this.$route.params.id(注意是 $route,不是 $router)
  • ⚠️ 注意:如果用 path 跳转(非 name),params 会失效,必须用 name 或完整 path + params 同时传

query 传参:适合可选、筛选类参数(类似传统 GET)

query 参数以 ?key=value&sort=asc 形式拼在 URL 后,不参与路由匹配,因此更灵活,也支持浏览器前进/后退保留状态。

蓝湖代码转vue2.0+element-ui
蓝湖代码转vue2.0+element-ui

将静态 Vue 页面(index.vue)改造为动态页面(Custom.vue);稿源仅限 index.vue、其引用的 CSS 与资源路径,禁止参考仓库内其他文件。Invoke when user wants to transform a static Vue page into a dynamic data-driven page with Element UI components.

下载
  • 跳转时传:this.$router.push({ path: '/search', query: { q: 'vue', page: 2 } })
  • URL 显示为:/search?q=vue&page=2
  • 组件中取值:this.$route.query.q、this.$route.query.page
  • 支持对象、数组甚至嵌套(会被自动序列化),例如 { tags: ['vue', 'router'] } → ?tags[]=vue&tags[]=router

监听参数变化,避免页面不刷新

用 params 或 query 跳转到**同一个路由组件**时(比如从 /user/1 → /user/2),组件实例会被复用,不会触发 created/mounted,所以参数变了但视图没更新。

  • 方案一:监听 $route 变化(推荐 Vue 2):
    watch: { '$route': 'fetchData' },然后在 fetchData() 里读取 this.$route.params.id
  • 方案二:用 beforeRouteUpdate 导航守卫(Vue 2)或 onBeforeRouteUpdate(Vue 3 Composition API)
  • 方案三:给 加 :key="$route.fullPath" 强制重渲染(简单但略重)

补充:params 和 query 混用没问题

比如路径是 /order/:orderId,同时带 ?tab=detail&from=notification,那你可以同时访问:
this.$route.params.orderId 和 this.$route.query.tab

  • params 是路径级标识(通常唯一、不可省略)
  • query 是附加行为控制(可选、可删、可多个)
  • 别把敏感信息放 query 里(会留痕、上日志),ID 类建议用 params;搜索条件、分页、标签过滤用 query 更合适

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

vue

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2743

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5943

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6890

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6658

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

943

5

vue2.0和3.0区别
vue2.0和3.0区别

vue2.0和3.0区别:vue2的响应式原理是利⽤“Object.defineProperty()”对数据进⾏劫持结合发布订阅模式的⽅式来实现,vue3中使⽤了es6的proxy API对数据代理,实现对数据的监控。本专题为大家提供vue2.0和3.0区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.17

1714

5

vue3的生命周期有哪些
vue3的生命周期有哪些

vue3的生命周期:1、beforecreate;2、created;3、beforemount;4、mounted;5、beforeupdate;6、updated;7、beforedestroy;8、destroyed;9、activated;10、deactivated等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

12342

5

Vue3组合式API与组件开发实战
Vue3组合式API与组件开发实战

本专题讲解 Vue 3 组合式 API 的核心概念与应用技巧,深入分析响应式系统、生命周期管理、组件设计与复用策略。通过完整项目案例,指导前端开发者实现高性能、结构清晰的 Vue 应用,提升开发效率与代码可维护性。

2026.02.10

336

23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.3万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.6万人学习