vue路由传参的两种方式的区别_vue路由跳转获取参数

vue路由传参的两种方式的区别_vue路由跳转获取参数vue路由传参的两种方式

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

项目场景:

例如:点击table表格第一列进入详情页,这时候我们进行路由跳转就需要携带一些参数以便我们在详情页使用


跳转方式

一般我们有两种方式让路由携带参数

1.路由传参query(path是路由地址,query是需要传递的参数)

goDetail() { 
   
      this.$router.push({ 
   
        path: "/publish",
        query: { 
   
          roleName: "admin",
          id: 1,
        },
      });
    },

Jetbrains全家桶1年46,售后保障稳定

注意:如果传入的参数存在对象,则必须转成JSON字符串传入,接收的时候再转换

goDetail() { 
   
      let arr = [{ 
   name:"admin",value:111},{ 
   name:"admin2",value:222}]
      this.$router.push({ 
   
        path: "/publish",
        query: { 
   
          roleName: JSON.stringify(arr),
          id: 1,
        },
      });
    },

2.路由传参params(name与路由的name对应,params是需要传递的参数)

goDetail() { 
   
      this.$router.push({ 
   
        name: "publish",
        params: { 
   
          roleName: "admin",
          id: 1,
        },
      });
    },

注意:params传参刷新页面的时候会丢失数据,解决方法是在路由的配置文件里给该路由后面拼接需要的参数

{ 
   
    path: "/Publish/:roleName/:id",//:roleName与:id之间的/可以省略,看自己喜好
    name: "publish",
    component:import("../components/PublishApp"),
},

接收路由参数:

1.query的接收方式:

//参数不存在对象时
created() { 
   
    console.log(this.$route.query)
  },
//参数存在对象时,只能单独取,直接打印query报错
created() { 
   
   console.log(JSON.parse(this.$route.query.roleName));
  },

2.params的接收方式:

 created() { 
   
    console.log(this.$route.params);
  },

注意:

1.query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会再地址栏中显示;
2.如果用params又不想刷新后丢失参数,只能拼在路由path后面;
3.个人觉得用params把参数拼在路由后面比query好看很多;
4.params想携带数组对象这些类型的数据,又不想刷新后丢失,我没找到解决办法,还是用query,有没有大神知道告诉我一下谢谢!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • numpy安装过程

    numpy安装过程下载 numpy 库的详细方法安装前提 1 Python3 8 安装完成并能够正常使用 2 下载相应的 numpy 安装包 whl 格式安装详细步骤 首先 点击下面的链接进入 numpy 下载官网链接地址 添加链接描述进去之后 点击文档下载 进入界面 cp37 指对应的 Python 版本 还要注意后面的 32 64 是你的系统然后点击下载 下载到你 Python 下面的 Scripts 文件夹下 打开 cmd 输入命令行 pipinstallnu 文件名 whl 出现 Successfulin

    2025年9月7日
    4
  • JSP简明教程「建议收藏」

    1、jsp是什么?1)jsp:javaserverpages2)jsp运行在服务器3)jsp的基础是servlet,相当于对servlet进行一个包装4)jsp无需配置,直接使用,如果修改了jsp文件,不需要重新reloadweb应用5)jsp访问方法:http://ip:8080/web应用名/jsp路径6)jsp是一种动态网页技术2、JSP=html+java片段+JSP标签(语法)+j

    2022年4月16日
    53
  • c语言bzero函数_hikaricp源码分析

    c语言bzero函数_hikaricp源码分析看《网络编程》,对bzero等函数的实现颇有兴趣,于是便翻看了其源代码的实现。bzero、bcopy、bcmp等函数源码如下:bzero源码:voidbzero(s1,n) void*s1; unsignedn;{ registerchar*t=s1; while(n!=0){ *t++=0; n–; }}bcopy源码如下:

    2022年10月13日
    5
  • 网站程序下载_可以免费下载程序的网站

    网站程序下载_可以免费下载程序的网站1、博客网站:Wordpress、zblog2、门户网站:Dedecms、phpcms、帝国cms3、论坛网站:Discuz4、企业网站:Dedecms、phpcms、帝国cms5、商城网站:

    2022年8月6日
    6
  • 协程

    协程介绍协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。、需要强调的是:对比操作系统控制

    2022年3月29日
    53
  • 【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

    【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包使用maven构建工具可以将工程打包生成普通的jar包、可运行的jar包,也可以将所有依赖一起打包生成jar;一、普通的jar包普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖;同时还包括pom文件,说明该包的依赖信息;在工程pom文件下这样写,可生成普通的jar包:jar或者,不写,因为packaging默认打包类型为

    2022年5月30日
    37

发表回复

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

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