当前位置: 首页 > news >正文

vue路由传参(query和params两种方式)

vue传参常用的两种传参方式

  • query方式:
    • 参数拼接在url上
    • 刷新页面不会丢失数据
    • 但如果传递对象或者数组过大时,会出现url过长导致异常错误的问题
    • 参数为对象或者对象组成的数组时,需要使用JSON.stringify()格式化,接收时JSON.parse()解析
    • 可以使用name或者path指定跳转页面
  • params方式:
    • 参数不会拼接在url上
    • 刷新页面会丢失数据
    • 只能使用name来指定跳转的页面

1、query传参方式

1.1、可以使用path或者name方式进行传参

// pageA
this.$router.push({
        name: 'pageB', // 1、可以用name来指定跳转的页面;2、name值是路由声明时对应name的值
        path: '/pageB', // 1、也可以用path来指定跳转的页面
        query: {
          'name': '张三'
        }
      })
// pageB页面接收
this$route.query.name

1.2、query传递对象或者对象组成的数组时,需要注意数据解析错误的问题

// pageA页面
this.$router.push({
        path: '/pageB',
        // 传递参数为对象组成的数组或者对象时,页面刷新会导致值变为[Object, Object],需要使用JSON.stringify()转为字符串,接收时使用JSON.parse()处理参数
        // 参数是有基本类型数据组成的数组时,刷新页面能正常显示
        query: {
          'nameObj': JSON.stringify({name: '张三'})
        }
      })
// pageB页面接受
JSON.parse(this.$route.query.nameObj)

2、params传参方式

this.$router.push({
        // path: '/pageB', // params传参,使用path来指定跳转页面时,页面可以正常跳转,但参数会丢失
        name: 'pageB', // 1、params传参必须指定name来指定跳转的页面;2、name值是路由声明时对应name的值
        params: {
          'name': '张三'
        }
      })
// pageB页面接收
this.$route.params.name

相关文章:

  • Docker笔记:关于Dockerfile及构建镜像
  • 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
  • Axure元件的介绍使用以及登录界面和个人简历的绘制
  • 专项测试——移动app安装包检测
  • Python实验项目9 :网络爬虫与自动化
  • Qt 文字描边(基础篇)
  • 总结MySQL 的一些知识点:MySQL 运算符
  • 机器视觉技术与应用实战(Chapter Two-03)
  • 了解Spring Boot:重要注解详解
  • 向量、矩阵、数组、向量空间
  • <VR串流线方案> PICO 4 Pro VR串流线方案 Oculus Quest2 Link串流线方案
  • 计算机网络:网络层(无分类编址CIDR、计算题讲解)
  • 一篇文章了解Flutter Json系列化和反序列化
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • 【深度强化学习】策略梯度方法:REINFORCE、Actor-Critic
  • 前后端传参格式
  • 04-Nacos中负载均衡规则的配置
  • C# 数据的保存和提取(.TXT格式)
  • 外包干了3个月,技术退步明显。。。
  • SSL证书HTTPS保护服务
  • 王毅同印度国家安全顾问多瓦尔通电话
  • 习近平结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典回到北京
  • 市自规局公告收回新校区建设用地,宿迁学院:需变更建设主体
  • 人民日报整版聚焦:铭记二战历史,传承深厚友谊
  • 梅花奖在上海|第六代“杨子荣”是怎样炼成的?
  • 国家发改委副主任谈民营经济促进法:以法治的稳定性增强发展的确定性