关于路由参数不断的切换导致返回历史无法一次返回到"上一个路由"的问题

博客介绍了路由带参页面返回的处理方法。对于个人中心到订单页的固定模式,可将浏览器最后一次历史改为个人中心,或用路由跳转;对于商品列表页,因进入途径多样,需判断记录进入时的路由并存储,还提到在 app.vue 中监听路由。

1 比如第一种需求,个人中心进入订单页,由于我需要带参数到订单页时处理不同的状态,所以我这里用路由带参数,返回时我应该直接返回个人中心,而不是按照浏览器的历史一直后台,解决:

watch:{
  '$route':function(){
    history.pushState(null,null,'/#/account');
  },
},

解决方法就是订单列表中每次路由的改变我们都要将浏览器的最后一次历史改为''个人中心'',这样浏览器历史返回上一页就是个人中心了,当然这种个人中心到订单的模式是固定的,所以当返回按钮用自己的元素的时候,其实可以直接用路由跳转到个人中心。

2 我有一个商品列表页,头部带分类的那种,我跳过来的时候路由也是带参数的,但是我进这个列表页的途径是多种,那个我返回的时候就不能是固定的了,这种的话就要求判断记录进入这个列表页的时候的路由,存一下;

在app.vue中监听路由:

watch:{
  '$route':function(newUrl,oldUrl){

    if(newUrl.name==='GoodsList'&&oldUrl.name!='GoodsList'){
     this.$store.dispatch('setState',{name:'RecordGoodsList',value:{
     lastHash:oldUrl.fullPath,
     }});
    }

  }
}

然后列表页:

 watch:{
      '$route':function(){
        history.replaceState(null,null,'/#'+this.$store.state.RecordGoodsList.lastHash);
       ...
      }
    },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值