vue中使用history.go(-1)和history.back()两种返回上一页的区别

vue中使用history.go(-1)和history.back()两种返回上一页的区别

go(-1):原页面表单中的内容会丢失;

history.go(-1):后退+刷新;
history.go(1):前进;

back():原页面表单中的内容会保留;

history.back():后退
history.back(0):刷新
history.back(1):前进

使用路由进行页面前进时,路由会向 history 栈添加一个新的记录,所以,当用户点击$router.back()后退按钮时,则回到之前的 URL。

路由中设置:

{ path: '/shop', component: Shop ,
      children:
      [
        {path: 'goods', component: ShopGoods}{path: 'info', component: ShopGoods}
      ]
},

如果先在子路由中来回点击时,再按返回按钮,页面就会在之前点击的子路由中来回跳转,然后再回到上一级路由

原因:

因为在点击路由切换时,不管是子路由还是父路由,只要点击页面跳转了,路由都会向history 栈添加一个新的记录

思路:

想要解决这个问题就得在点击子路由的时候,在history 栈中不添加新的记录

解决方法

在子路由 router-link 中使用 replace ,就可以解决这个问题(直接回到上一级路由)
(因为replace不会向 history 添加新记录,也就是点击子路由时history 栈中不会添加新纪录)

 <router-link to="/shop/goods" replace>商品</router-link>
 <router-link to="/shop/info" replace>信息</router-link>

所以点击返回就会回到上一级路由

<a @click="$router.back()"></a>
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值