VUE路由跳转记住滚动位置,返回时回到上次滚动位置

本解决方案原理是利用Keep-Alive、监听滚动事件 与 watch中监听$route 实现。
使用watch监听$route的方案适用于滚动区域在子组件中的情况。
因为,beforeRouteLeave 路由导航守卫,只能作用在路由组件内,不能被路由组件内的子组件所触发。

vue-router文档截图如下:
VUE路由跳转记住滚动位置,返回时回到上次滚动位置
文章图片
【VUE路由跳转记住滚动位置,返回时回到上次滚动位置】本样例使用element-ui 下的 el-table表格组件,原生或其他UI组件思路同理。
router.js
{ path: '/dispatchDetail', name: 'dispatchDetail', component: () => import('@/views/dispatchDetail/index.vue'), meta: { title: '日调度情况查询', keepAlive: true} //需要缓存 },

App.vue
// 缓存组件跳转的页面 // 不需要缓存组件的页面

dispatchDetail.vue

    推荐阅读