vue 使用$router.push(参数)跳转同一路由页面,参数不同,跳转页面数据均为最后一次传值数据

文章讲述了在项目中,使用$router.push跳转同一路由时,如何避免数据被其他打开的tab覆盖的问题。给出了两种解决方案:一是使用`key`属性确保每个视图实例独立,二是通过监听路由变化来更新特定数据。

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

问题描述:项目中,使用$router.push(参数)跳转同一路由页面,打开多个tab,数据均为最后一次打开的数据;
1、列表页面

在这里插入图片描述

2、从1进入的编辑详情:

在这里插入图片描述

3、从2进入的编辑详情:在这里插入图片描述
4、此时1的编辑详情内容也变成了2进入的编辑详情内容在这里插入图片描述
解决方案一:
<template>
  <router-view :key="key"></router-view>
</template>
<script>
export default {
  computed: {
    key() {
      return this.$route.path + Date.now()
    }
  }
}
</script>
<style>
</style>
解决方案二(监听路由):
//解决进入不同row的详情,打开多个tab,数据均为最后一次打开的数据
watch: {
    $route(to, from) {
      if (to.query.id != from.query.id) {
        this.invoiceItem = to.query
        this.getInvoiceDetails();
      }
    },
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值