项目要求(商品列表):pageA -> pageB -> pageAvue
但上面不少时候,因页面需求缘由,不能使用这种实现方式,在网上找了不少方法,可是都不是很好用,如今本身实现了一个还算不错的。vue-router
首先,在vue-router中,scrollBehavior
这个方法是能够打印访问过的页面,滚动的位置的。【注意:在刷新页面时,不会触发该事件】vuex
咱们能够使用vuex储存滚动的位置(因页面会作接口请求数据,因此要在数据渲染完成后,再进行跳转)api
store.commit('SET_ROUTER_POSITION', savedPosition || {})
好。咱们获取到滚动的位置而且储存后,咱们在须要在指定页面进行页面渲染后,调用滚动事件。缓存
封装mixin方法,省得每一个页面都须要写一次安全
再封装页面滚动事件,延时300毫秒是为了安全起见,怕移动端有兼容,因此先加上网络
最后,页面进行调用spa
可在接口请求回来数据后,进行调用。这样处理网络过慢问题code
完成解决这么久以来的困惑,若有帮助加个收藏router