Vue详情页回列表页保存原数据与位置。
Posted niubenbit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue详情页回列表页保存原数据与位置。相关的知识,希望对你有一定的参考价值。
列表页关键代码
mounted() //非从详情页返回时正常加载数据 if (!this.$route.meta.isBack) //执行加载数据的方法 //重新加载页面 else // this.onFetching = true; this.curPage = sessionStorage.getItem(‘curPage‘); //存储分页第几页,用于返回列表页继续可以分页 ... //执行完初始化isBack this.$route.meta.isBack = false , beforeRouteLeave(to, from, next) if(to.name == ‘bbs_detail‘) //跳转为详情页,就保存当前滚动的页数 sessionStorage.setItem(‘curPage‘, this.curPage); else //跳转为非详情页,滚动的页数归1 sessionStorage.setItem(‘curPage‘, 1); next(); ,
main.js
// 返回定位 router.afterEach((to,from) => let path = to.path; //判断需要定位的路由地址 if(path == ‘/bbs‘) //获取储存起来的位置 let scrollTop = sessionStorage.getItem(‘scrollTop‘); if(scrollTop) setTimeout(()=> //页面渲染完成后,在滚动,位置才是正确的,所以加个延迟 document.getElementById(‘app‘).scrollTop = scrollTop; sessionStorage.setItem(‘scrollTop‘,0); //定位后还原储存位置信息 ,300) else //除了特定地址,其他的都返回顶部 sessionStorage.setItem(‘scrollTop‘, document.getElementById(‘app‘).scrollTop*1);//储存位置 document.getElementById(‘app‘).scrollTop = 0; )
以上是关于Vue详情页回列表页保存原数据与位置。的主要内容,如果未能解决你的问题,请参考以下文章