beforeRouteLeave
需求描述
在使用 element-UI的table 的时候,有这么一个需求。从一个页面切换到另一个页面,再切回来的时候,滚动条的位置不变。

需求:滚动浏览列表页,出现滚动条,点击用户名之后,跳转到商铺管理(发生路由跳转)。从商铺列表返回到信息列表之后,列表页还是之前所浏览的位置,而不是到列表页的顶部。

解决方案:

使用 beforeRouteLeave 来记录路由跳转之前滚动条的位置
使用keepAlive来缓存信息列表状态,路由切换到信息列表的时候回触发 activated。
在 activated 中将beforeRouteLeave 中记录的位置赋值给引起滚动条滚动元素的 scrollTop。
此时需要使用到 beforeRouteLeave 这个生命周期函数。
beforeRouteLeave的用法
** beforeRouteLeave(to, from, next)** : 离开路由之前执行的函数,可用于页面的反向传值,页面跳转。

to :跳转到哪个页面
from:从哪个页面跳转
next:相当于一个按钮开启一样。

具体解决方案

具体解决方案:(el-table 中引起滚动条滚动的元素是 el-table__body-wrapper):

beforeRouteLeave
需求描述
在使用 element-UI的table 的时候,有这么一个需求。从一个页面切换到另一个页面,再切回来的时候,滚动条的位置不变。 需求:滚动浏览列表页,出现滚动条,点击用户名之后,跳转到商铺管理(发生路由跳转)。从商铺列表返回到信息列表之后,列表页还是之前所浏览的位置,而不是到列表页的顶部。 解决方案: 使用 beforeRouteLeave 来记录路由跳转之前滚动条的位置
使用keepAlive来缓存信息列表状态,路由切换到信息列表的时候回触发 activated。
在 activated 中将beforeRouteLeave 中记录的位置赋值给引起滚动条滚动元素的 scrollTop。
此时需要使用到 beforeRouteLeave 这个生命周期函数。
beforeRouteLeave的用法
** beforeRouteLeave(to, from, next)** : 离开路由之前执行的函数,可用于页面的反向传值,页面跳转。 to :跳转到哪个页面
from:从哪个页面跳转
next:相当于一个按钮开启一样。 具体解决方案
具体解决方案:(el-table 中引起滚动条滚动的元素是 el-table__body-wrapper): // 路由跳转之前保存当前滚动条的位置。
beforeRouteLeave(to, from, next) {
this.scroll = document.getElementsByClassName(
"el-table__body-wrapper"
)[0].scrollTop;
next();
},
//使用keepAlive缓存组件状态,页面切换路由会触发 activated 钩子函数。在 activated 中将 之前记录的位置赋值给引起滚动条滚动元素的 scrollTop
activated(){
this.$nextTick(() => {
setTimeout(() => {
// 也可以使用 document.getElementsByClassName("el-table__body-wrapper")[0].scrollTop = this.scroll
this.$refs.table.bodyWrapper.scrollTop = this.scroll;
}, 0);
});
}

  

最新文章

  1. 6_PHP AJAX MYSQL
  2. Guava学习笔记:Preconditions优雅的检验参数
  3. django缓存
  4. 转:CentOS 7 安装Nginx
  5. debian7安装oracle11g
  6. IE的@cc_on条件编译
  7. Sicily 1790. Single Round Match
  8. DEDE里有个编码问题,不支持PHP5.4及以上版本!
  9. Linux内核分析(七)----并发与竞态
  10. 【java集合框架源码剖析系列】java源码剖析之ArrayList
  11. 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)
  12. Identity Server 4 - Hybrid Flow - 保护API资源
  13. Spring学习之旅(八)Spring 基于AspectJ注解配置的AOP编程工作原理初探
  14. Android 音视频深入 七 学习之路的总结和资料分享
  15. mysql的高级特性-存储过程
  16. unwrap bug
  17. python setattr
  18. java 8 学习资料
  19. margin和padding的四种写法
  20. Python 关于bytes类方法对数字转换的误区, Json的重要性

热门文章

  1. 2流高手速成记(之六):从SpringBoot到SpringCloudAlibaba
  2. Ubuntu 下安装 redis 并且设置远程登陆和密码
  3. onps栈使用说明(3)——tcp、udp通讯测试
  4. 洛谷 P4135 作诗 题解
  5. c++题目:切香肠
  6. SpringMVC01:入门、请求参数绑定、自定义类型转换器、常见注解
  7. 【机器学习】李宏毅——卷积神经网络CNN
  8. 第三模块的下载、requests模块、openpyxl模块
  9. django 之swagger配置与生成接口文档
  10. 通过surging的后台托管服务编写任务调度并支持规则引擎自定义脚本