解决vue-router跳转页面,返回上一页跳回指定位置(转)

项目要求(商品列表):pageA -> pageB -> pageA

常用的:keep-alive 路由缓存(不多解说)

但上面很多时候,因页面需求原因,不能使用这种实现方式,在网上找了很多方法,但是都不是很好用,现在自己实现了一个还算不错的。

clipboard.png

首先,在vue-router中,scrollBehavior这个方法是可以打印访问过的页面,滚动的位置的。【注意:在刷新页面时,不会触发该事件】

clipboard.png

我们可以使用vuex储存滚动的位置(因页面会做接口请求数据,所以要在数据渲染完成后,再进行跳转)

store.commit('SET_ROUTER_POSITION', savedPosition || {})

好。我们获取到滚动的位置并且储存后,我们在需要在指定页面进行页面渲染后,调用滚动事件。

封装mixin方法,免得每个页面都需要写一次

clipboard.png

再封装页面滚动事件,延时300毫秒是为了安全起见,怕移动端有兼容,所以先加上

clipboard.png

最后,页面进行调用

clipboard.png

可在接口请求回来数据后,进行调用。这样处理网络过慢问题

clipboard.png

完成解决这么久以来的困惑,如有帮助加个收藏

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值