vue-03-路由-路由传参

男娘i 2023-07-20 13:40 105阅读 0赞

和平时的页面跳转一样,我们可能需要在地址栏上传递某些参数,例如,从商品列表页面,跳转的某个商品的详情页面,这个时候,如果是页面跳转的时候,我们会直接在url上跟上一个商品id,例如:xxx/shop/shopId=123。

但是,在vue中,传参的形式和平时页面跳转的传参形式是不一样的,因为vue中是一个单页应用,不存在页面跳转,只是路由间的跳转。

路由跳转传值存在两种情况

1、query 对应 path,如果push跳转的时候,是通过path路径跳转的,那么我们在传递参数的时候,就只能通过 query 来传递参数。取值的时候,也只能使用固定的 this.$route.query.xxx。

这样最终在浏览器显示的地址就是 xxx/mtindex/detail?shopid=123456

  1. {
  2. path:'/mtindex',
  3. component: mtindex,
  4. //添加路由
  5. children:[
  6. {
  7. path:'/detail/:shopid',
  8. component:guessdetail
  9. }
  10. ]
  11. },
  12. //跳转传参
  13. this.$router.push({
  14. path: '/mtindex/detail', query:{shopid: item.id}
  15. });
  16. //取值
  17. this.$route.query.shopid

2、params 对应 name。如果push跳转的时候,是通过path路径跳转的,那么我们在传递参数的时候,就只能通过 params 来传递参数。取值的时候,也只能使用固定的 this.$route.params.xxx。

这样最终在浏览器显示的地址就是 xxx/mtindex/detail?shopid=123456

  1. {
  2. path:'/mtindex',
  3. component: mtindex,
  4. //添加路由
  5. children:[
  6. {
  7. path:"/detail",
  8. name:'detail',
  9. component:guessdetail
  10. }
  11. ]
  12. },
  13. //传参数( params相对应的是name query相对应的是path)
  14. this.$router.push({
  15. name: 'detail', params:{shopid: item.id}
  16. });
  17. //获取参数
  18. this.$route.params.shopid

发表评论

表情:
评论列表 (有 0 条评论,105人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue

    前言 之前,查了其他博客,总结一篇,发现貌似不对??,因此又查了一遍好不容易写了出来。 1.query传参 一种是,这样滴。 // 跳转 thi

    相关 vue-03--

    和平时的页面跳转一样,我们可能需要在地址栏上传递某些参数,例如,从商品列表页面,跳转的某个商品的详情页面,这个时候,如果是页面跳转的时候,我们会直接在url上跟上一个商品id,

    相关 Vue跳转+

    之前在原生JS的开发中,我们经常会用到根据某一状态进行页面的跳转。 比如:登录成功跳到首页,点击商品列表的某个商品跳转商品详情等。 而常见的写法就是: locat