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

本解决方案原理是利用Keep-Alive监听滚动事件watch中监听$route 实现。

使用watch监听$route的方案适用于滚动区域在子组件中的情况。

因为,beforeRouteLeave 路由导航守卫,只能作用在路由组件内,不能被路由组件内的子组件所触发。

vue-router文档截图如下:
VUE路由跳转记住滚动位置,返回时回到上次滚动位置_第1张图片

本样例使用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

 
 

你可能感兴趣的:(VUE路由跳转记住滚动位置,返回时回到上次滚动位置)