废话不多说开整
1.在router路由中index文件
const router = createRouter({
history: createWebHashHistory(),
routes,
// scrollBehavior 实现定位上次浏览的位置
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
const position = {}
if (to.hash) {
position.selector = to.hash
}
if (sessionStorage.getItem('scrollPosition')) {
position.x = 0
position.y = sessionStorage.getItem('scrollPosition')
}
return position
}
}
})
router.afterEach((to, from) => {
// from.path === '/performanceFilesList' 这里来写实现要跳转的列表地址
if (from.path === '/performanceFilesList') {
sessionStorage.setItem('scrollPosition', window.scrollY)
}
})
2.在要定位的列表(performanceFilesList)页面onMounted周期中
setTimeout(() => {
if (sessionStorage.getItem('scrollPosition')) {
window.scrollTo(0, sessionStorage.getItem('scrollPosition'))
} else {
window.scrollTo(0, 0)
}
}, 1500)