vue3+ts 页面跳转传对象

问题描述:

进最近在使用vue3+ts+vite做了一个小项目,页面跳转需要传对象然而我就跟往常使用vue2和js的用法传参然后出现了问题

这里是页面a传参

 然后页面b进行接受参数的时候报错了

 原因可能是因为传参的类型跟接受参数的类型不符,因为使用ts所以对属性的类型有严格的规范所以解决方法如下

页面A跳转页面B

页面A:

//BlueContentDto是已经定义好接收数据的接口

const item:BlueContentDto =  {
        id: "1",
        name: "工作经验",
      }

const data = JSON.stringify(item)
router.push({
       path: '页面B路径',
       query: {
           conObj:encodeURIComponent(data )
       }
})

页面B:

interface RouteQuery extends LocationQuery {
  conObj: string;
}

const contentInfo = ref({} as BlueContentDto);
const routeQuery = route.query as RouteQuery;

if (route.query.conObj) {
  const str: string = decodeURIComponent(routeQuery.conObj);
  contentInfo.value = JSON.parse(str);
  console.log("接收参数", contentInfo.value);
}

声明一个RouteQuery接口并继承 LocationQuery 然后在声明一个接受类型就成功接收到传的对象

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值