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

54次阅读

共计 448 个字符,预计需要花费 2 分钟才能阅读完成。

提醒:本文最后更新于 2019-04-30 13:45,文中所关联的信息可能已发生改变,请知悉!

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

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

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

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

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

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

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

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

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

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

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

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

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

最后,页面进行调用

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

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

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

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

正文完
 0