vue路由传参,刷新页面,参数变成[Object object]

本文介绍了在Vue中遇到路由传参时,当参数为对象且刷新页面,参数显示为[Object object]的问题。分析了原因,并提出了解决方案,即对于对象参数,应当使用JSON.stringify()进行序列化处理,在接收端再用JSON.parse()还原对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在项目中,调整路径经常需要携带参数过去

常见的携带参数的方式,就是通过query和params的方式

this.$router.push({
  name: `test`,
  params: {
    a: 1,
  }
})
//或者
this.$router.push({
  path: `/test`,
  query: {
    a: 1,
  }
})
//接受参数
this.$route.params.a

this.$route.query.a

原因分析:

如果传递的参数是个对象,那么刷新或者调整再回来,参数的值就会变成[Object,Object],页面上显示就会出现错误

解决方案:

如果携带的参数个数少的情况下,可以直接写在query或者params中。

如果必须要携带对象的参数。,就要把对象使用JSON.stringify(Obj)
转换

this.$router.push({
  path: `/test`,
  query: {
   Obj:JSON.stringify(obj)
  }
})

接受时

let obj = JSON.parse(this.$route.query.Obj);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值