路由传参的方式有几种?

本文介绍了在Vue2和Vue3中进行路由参数传递的两种主要方式:query传参和params传参。query传参会在URL后面拼接参数,而params传参则保持URL干净,但刷新后params参数不会保存。此外,还提到了动态路由传参的使用,并对比了params和query的区别,如params只能与name配合,刷新后不保存,且在地址栏不显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue2
第一种:
 query传参 后面拼接的就是我们传过来的参数
传:this.$router.push({path:‘/detail’,query:{obj:我们传过来的参数})
接:this.$route.query.obj
第二
params传参
路径是干净的,不会在路由后面拼接


传:this.$router.push({name:'Detail',params:{obj:我们传的参数}})
接: obj:this.$route.params.obj

vue2
第一种:
 query传参 后面拼接的就是我们传过来的参数
传:this.$router.push({path:‘/detail’,query:{obj:我们传过来的参数})
接:this.$route.query.obj
第二
params传参
路径是干净的,不会在路由后面拼接
传:this.$router.push({name:'Detail',params:{obj:我们传的参数}})
接: obj:this.$route.params.obj


vue3

传:import {useRouter} from 'vue-router'
接:import{useRoute} from ‘vue-router’
query传参
传:router.push({path:'/detail',query:{id:val.id}})
另一种拼接写法:router.push(` /detail?id=${val.id}`)
接:console.log(route.query.id)
params传参
传:router.push({name:‘Detail’,params:{id:val.id}})

接:console.log(route.params.id)
const  route = useRoute(); //useRoute是一个方法,不调用获取不到
第三
动态路由传参:‘/detail/:id’
传:router.push(`/detail/${val.id}`)
接:console.log(route.params.id)
动态路由传参用params接收


vue3

传:import {useRouter} from 'vue-router'
接:import{useRoute} from ‘vue-router’
query传参
传:router.push({path:'/detail',query:{id:val.id}})
另一种拼接写法:router.push(` /detail?id=${val.id}`)
接:console.log(route.query.id)
params传参
传:router.push({name:‘Detail’,params:{id:val.id}})

接:console.log(route.params.id)
const  route = useRoute(); //useRoute是一个方法,不调用获取不到
第三
动态路由传参:‘/detail/:id’
传:router.push(`/detail/${val.id}`)
接:console.log(route.params.id)
动态路由传参用params接收

Params和query的区别
(1)  query可以使用name和path而params只能使用name
(2)  使用params传参刷新后不会保存,而query传参刷新后可以保存
(3)  Params在地址栏中不会显示,query会显示
(4)  Params可以和动态路由一起使用,query不可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值