阿尔卑斯丶
圣骑士
圣骑士
  • 最后登录2023-11-03
  • 发帖数59
  • 社区居民
  • 原创写手
阅读:7645回复:1

[vue]vue路由传参

楼主#
更多 发布于:2019-04-18 15:16
日常踩坑:路由传参
今天需要做vue中两个页面之间跳转并且需要传递参数从第一个页面到第二个页面,然后开始了踩坑之旅;
假设从A页面跳转至B页面:
第一种:query传参:
A页面传递参数:
handleEdit(index,row){
    if(index==0){
       return false;
    }else{
     this.$router.push('/schoolDetails'+'/'+row.name);
    }
  },
B页面接收参数:
let areaName = this.$route.params.name;
你以为这样就能直接成功了吗?    NO!!!!!!!!!!!
这样做的前提是你要在路由中写入:
path: '/schoolDetails/:name'




第二种params传参:
A页面传递参数:
handleEdit(index,row){
     if(index==0){
        return false;
     }else{
     this.$router.push({
       path:'/schoolDetails',
       params:{
         areaName:row.name
       }
     })
     }
   },

B页面接收参数:
let areaName = this.$route.params.areaName;
你以为这样就能直接成功了吗?    NO!!!!!!!!!!!
为什么呢?
因为params传参只能支持name方式,不能使用path进行传参,所以路由中需要是
{
            path: '/schoolDetails',
            name: 'schoolDetails',
            meta: {
                requireAuth: true
            },
            component: schoolDetails
        }
然后A页面传参需要是:
handleEdit(index,row){
      if(index==0){
         return false;
      }else{
      this.$router.push({
        name:'schoolDetails',
        params:{
          areaName:row.name
        }
      })
      }
    },
这样就OK了。
阿尔卑斯丶
圣骑士
圣骑士
  • 最后登录2023-11-03
  • 发帖数59
  • 社区居民
  • 原创写手
沙发#
发布于:2019-04-18 16:27
补充一句:params传参,页面刷新就会造成参数丢失,使用query方式传参则不会
游客


返回顶部

公众号

公众号