路由params、query传参及区别

简介: 功能

Vue路由如何使用params query传参,以及有什么区别

一、params、query是什么?

params:/router1/:id ,/router1/123,/router1/789 ,这里的id叫做params

query:/router1?id=123 ,/router1?id=456 ,这里的id叫做query

二、路由(router.js)

路由设置这里,当你使用params方法传参的时候,要在路由后面加参数名,并且传参的时候,参数名要跟路由后面设置的参数名对应。使用query方法,就没有这种限制,直接在跳转里面用就可以。
在这里插入图片描述

注意:如果路由上面不写参数,也是可以传过去的,但不会在url上面显示出你的参数,并且当你跳到别的页面或者刷新页面的时候 参数会丢失,那依赖这个参数的http请求或者其他操作就会失败。

三、案例:

组件1:

<template>
  <div class="app_page">
    <h1>从这个路由传参到别的路由</h1>
    <router-link :to="{ name:'router1',params: { id: status ,id2: status3},query: { queryId:  status2 }}" >
      router-link跳转router1
    </router-link>
  </div>
</template>
<script>
export default {
  name: 'app_page',
  data () {
    return {
      status:110,
      status2:120,
      status3:119
    }
  },
}
</script>

上面的router-link传参,也可以使用router文档里面的编程式导航来跳转传参。

this.$router.push({  name:'router1',params: { id: status ,id2: status3},query: { queryId:  status2 }});
    //编程跳转写在一个函数里面,通过click等方法来触发
这两种传参效果是一模一样的,编程式导航,可以用来做判断跳转,比如是否授权,是否登录,等等状态

组件2:

<template>
  <div class="router1">
    <h1>接收参数的路由</h1>
    <h1> params.id:{{ $route.params }}</h1>
    <h1>query.status:{{ $route.query.queryId }}</h1>
    <keep-alive>
      <router-view></router-view>
    </keep-alive>
  </div>
</template>
提示:获取路由上面的参数,用的是$route,后面没有r。

总结:params传参和query传参区别

1、地址栏中区别:

​ query传参:出现”
​ param传参:出现”/

2、获取参数方式区别:
query传参:this.$route.query
params传参:this.$route.params

3、params设置在路由上,成为路由的一部分,否则刷新页面时params会丢失。query是拼接在url后面的参数,没有也没关系。

e.params`

3、params设置在路由上,成为路由的一部分,否则刷新页面时params会丢失。query是拼接在url后面的参数,没有也没关系。

目录
相关文章
|
1月前
uView queryParams 对象转URL参数
uView queryParams 对象转URL参数
26 0
|
1月前
|
JSON 数据格式
Nestjs(三)接收参数 @Query @Body @Param(post、get 、put、delete ...)
Nestjs(三)接收参数 @Query @Body @Param(post、get 、put、delete ...)
223 4
|
1月前
|
JavaScript 前端开发
【vue】跨路由传值,params和query有什么区别?
【vue】跨路由传值,params和query有什么区别?
22 0
|
1月前
|
Java Spring
@RequestParams是这作用?
@RequestParams是这作用?
|
1月前
|
JavaScript
vue中router页面之间参数传递,params失效,建议使用query
vue中router页面之间参数传递,params失效,建议使用query
31 0
|
10月前
|
JavaScript
vue中query和params传参的区别
vue中query和params传参的区别
100 0
|
1月前
|
XML SQL JSON
query 与 params:选择正确的参数传递方式
query 与 params:选择正确的参数传递方式
|
7月前
|
JSON JavaScript 数据格式
Vue3.0实现todolist之路由传参(query模式传参和params传参)
Vue3.0实现todolist之路由传参(query模式传参和params传参)
47 1
|
1月前
|
JavaScript
Vue Router params 参数接收为空
Vue Router params 参数接收为空
86 0
|
机器学习/深度学习 存储 PyTorch
params.data.clone()是什么意思?params是模型的参数
在深度学习中,模型的参数通常是由多个张量组成的。这些张量存储了模型在训练过程中学到的权重和偏置等参数。 params.data 是一个张量,其中包含了模型的参数数据。clone() 是 PyTorch 中的一个方法,它用于创建一个与当前张量具有相同数据但不同内存地址的新张量。 因此,params.data.clone() 的意思是创建一个与 params.data 张量具有相同数据但不同内存地址的新张量。通常,这个方法被用来复制模型参数,以便在优化器中使用。
214 0