vue中的query和params

路由传参的方式有query和params,我是一直以来被误导,有很多人都在说他们的区别的时候 都说,一个可以刷新一个不可以刷新,所说的就是query传参可以刷新,而params不能刷新,真的是这样吗?下面是我总结的,如有不对请指正,或联系我谢谢**
注意**:不是说params就一定不能刷新,如果我们是使用的是 params路由传参的话,客户又不知道,又不懂什么是query,什么是params,你能不让他刷新界面吗显然是不可能的,先看一下他们的 传参方式

假设我们现在需要实现一个路由切换,点击之切换到W组件
并传递一个id值和一个age值
我们运用router-link来写
然后一连串的疑惑就产生了

<router-link :to="{ A: 'xxx', query: { xx:'xxx' }}" />
<router-link :to="{ A: 'xxx', parmas: { xx:'xxx' }}" />
routes:{ ??? }
你可能没有出来一点区别,

**再看一个例子
在看一个例子**所以不是说使用params传参就不能刷新页面的,如果的在路由上做了配置,当然是可以刷新页面的,不要被误导了

<router-link :to="{ name: 'W', params: { id:'1234',age:'12' }}"/>
这里只能用name不能用path,不然会直接无视掉params中的内容

然后在routes中添加

{
path:'/W/:id/:age',
name:'W',
component:W
}

这里的name与上面router-link中的name保持一致
url就取决于这个path的写法http://localhost:8080/#/W/1234/12
注意,path里面的/w可以任意写,写成/hhhhh也可以
但是!
/:id和/:age不能省略,且不能改名字
不写的话,第一次点击可以实现组件跳转
且可以通过this.$route.parmas.id获取到传过来的id值,但如果
刷新页面,传过来的id值和age值就会丢失
从这也能看出params比query严格
query的话一次是可以传递多个参数的
query:

<router-link :to="{ name: 'W', query: { id:'1234',age:'12' }}"/>
<router-link :to="{ path: '/W', query: { id:'1234',age:'12' }}"/>

name和path都可以用
前者的routes基于name设置

{
path: '/hhhhhhh', //这里可以任意
name: 'W', //这里必须是W
component: W
}

然后就把path匹配添加到url上去

http://localhost:8080/#/hhhhhhh?id=1234&age=12

后者基于path来设置routes

{
path: '/W', //这里必须是W
name: 'hhhhhhhh', //这里任意
component: W
}

url:http://localhost:8080/#/W?id=1234&age=12

这两种方法,都可以自定义path的样式,
不过一个是在router-link to里面定义,一个则是在routes里面定义
在接收参数的时候都是使用this.$route.query.id

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值