【Vue】路由传参中的坑(query、params)

【Vue】路由传参中的坑(query、params)

路由传参主要有query、params两种参数传递方法。

this.$router.push(参数)

1.query传参

this.$router.push({path:'/路径',query:{userName:username,PassWord:password}})
//path处填上路径,一般会在路由配置文件里配置好
//query中存放的是一系列的需要传递的参数名和对应的值

前端的调用显示

let username= this.$route.query.userName;

实践证明

虽然query能将之前页面的信息通过路由的方式传递到新页面中,并且我的需求也实现了,能根据从之前页面传过来的参数,查询完显示在新页面。
但是,我发现传递的信息完全的暴露在地址栏上。
//如:地址?username=123456

于是,我查了资料,了解到了另一种传递参数的方式即params
它们之间的区别可以简单的理解为

query :相当于get请求,获取到的参数会在地址栏中显示
params :相当于post请求,获取到的参数不会在地址栏中显示,但是params要配合name使用,这个name要在配置路由的时配置好。

2.params传参

this.$router.push({name:'userInfor',params:{userName:username,PassWord:password}});
///此处一定要注意,params要配合name使用,所以需要在路由配置中配置好。
//配置路由
{
    path: '/userInfor',
    name: 'userInfor',//与params配合使用
    component: resolve => require(['@/...../userInfor.vue'], resolve),
    //...中是具体的路径
    meta: {
      title: '用户信息',
    }

前端的调用显示,和query方式差不多

let username= this.$route.params.userName;

实践发现,params传参有个问题,利用params的方式获取的参数,虽然能够获取到数据,但是一旦进行对页面进行刷新,就获取不到参数了。

最后注意一下,传参用的是 router,接收参数用的是 route。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值