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不可以