Vue路由传参详解(params 与 query)

Vue路由传参详解(params 与 query)Vue 路由传参详解 params 与 query 前言 路由传参分为 params 传参与 query 传参 params 传参类似于网络请求中的 post 请求 params 传过去的参数不会显示在地址栏中 但是不能刷新 params 只能配合 name 使用 如果提供了 path params 会失效 query 传参类似于网络请求中的 get 请求 query 传过去的参数会拼接在地址栏中 name xx query 较为灵活既可以配合 path 使用 也能配合 name 使用 亲测可用

Vue路由传参详解(params 与 query)

前言:

路由传参分为 params 传参与 query 传参

params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显示在地址栏中(但是不能刷新)。params 只能配合 name 使用,如果提供了 path,params 会失效。

query 传参类似于网络请求中的 get 请求,query 传过去的参数会拼接在地址栏中(?name=xx)。query 较为灵活既可以配合 path 使用,也能配合 name 使用(亲测可用)。

name是什么呢?name 是配置路由时给 path 取的别名,方便使用。但要注意的是 “地址栏显示的路径始终是 path 的值

const routes = [ { 
    path: '/login', component: Login }, { 
    path: '/home', name: 'home', component: Home } ] 

name 最重要的一点就是配合 params 进行路由的参数传递。我们来看一个列子:当我们登录之后我们需要把用户名带到主页进行展示。当然方法有许多比如localStorage,sessionStorag,中央事件总线bus,但我们这里需要学习路由传参。

  • 方式一:通过 params 传参
    • 编程式:
      • data:{ 
                  username: '' }, login() { 
                  ... this.$router.push({ 
                  name: 'home', //注意使用 params 时一定不能使用 path params: { 
                  username: this.username }, }) } 
    • 声明式:
      • <router-link :to="{ name: 'home', params: { username: username } }"> 
    • 取值:this.$route.params.username
  • 方式二:通过 query 传参
    • 编程式:
      • data:{ 
                  username: '' }, login() { 
                  ... this.$router.push({ 
                  path: '/home', query: { 
                  username: this.username }, }) } 
    • 声明式:
      • <router-link :to="{ path: '/home', query: { username: username } }"> 
    • 取值:this.$route.query.username

params 传参后,刷新页面会失去拿到的参数。所以路由参数要修改为 '/login/:username'(官方称为动态路由)

const routes = [ { 
    path: '/login', component: Login }, { 
    path: '/home/:username', name: '/home', component: Home } 

但是这样就不会类似于 post 请求,他会把接收到的参数替换作为地址。

假如传入参数为:params: { username: ‘admin’},那么最终访问的地址为:http://localhost:8080/home/admin

总结

  • 通过登录的例子来看,如果用户名不是敏感信息,可以直接放在地址栏中(使用query参数)
  • 为什么不用params传参?由于 params 传参不能刷新。或满足刷新需求,但要对地址进行修改,用户名一样会显示在地址栏中
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216166.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午12:23
下一篇 2026年3月18日 下午12:24


相关推荐

  • linux查看当前登录用户

    linux查看当前登录用户1,ww,显示目前登入系统的用户信息-f 开启或关闭显示用户从何处登入系统。-h 不显示各栏位的标题信息列。-l 使用详细格式列表,此为预设值。-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。-V 显示版本信息。[root@card-web03~]#w…

    2022年5月18日
    113
  • 自动化运维平台的流程草图「建议收藏」

    自动化运维平台的流程草图「建议收藏」对于平台里面的几个地方一直没大理清楚,所以想了几种办法,一种是蒙着头继续做,想到哪里做到哪里,结果做的时候发现很多东西都没有规划好,很容易从这个死胡同调入另一个死胡同,所以进度不能保证,质量不能保证。 第二个是…

    2022年5月16日
    47
  • tensorflow estimator使用总结

    tensorflow estimator使用总结最近在使用 estimator 做项目 发现官网对这个 estimator 整体的讲解和使用过程中的细节讲的比较少 结合我是用过程中的问题 对 estimator 的使用步骤进行了总结 如下 代码见 github 求 star 1 estimator 主要需要 model fn input fn 以及 serving fn2 model fn 主要是是用来定义 model input

    2025年8月14日
    9
  • UVA10765-Doves and bombs(BCC)

    UVA10765-Doves and bombs(BCC)

    2022年1月31日
    52
  • pycharm多行批量缩进和反向缩进快捷键

    pycharm多行批量缩进和反向缩进快捷键tab 缩进 shift tab 反向缩进

    2026年3月27日
    2
  • TypeScript(3)基础类型[通俗易懂]

    TypeScript(3)基础类型[通俗易懂]基础类型TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。布尔值最基本的数据类型就是简单的true/false值,在JavaScri

    2022年7月29日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号