博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 页面切换的时候vuex记录之前的滚动条位置
阅读量:7206 次
发布时间:2019-06-29

本文共 1108 字,大约阅读时间需要 3 分钟。

beforeRouteEnter (to, from, next) {    let aScrollY = store.getters.aScrollY    setTimeout(function () {      window.scrollTo(0, aScrollY);    }, 0) //同步转异步操作 */    /* 页设置了keepalive,所以直接setTimeout 0的时候就能使用,如果你的页面不是keepalive,需要等nextTick后或者setTimeout 设置足够长的时间,再执行scrollTo。 */    next()  },  beforeRouteLeave (to, from, next) {
//记录离开时的位置 let position = window.scrollY this.$store.commit('changeaScrollY', position) next() },
import store from '../store'

如果使用了区域滚动

import Bscroll from 'better-scroll'
beforeRouteEnter (to, from, next) {    next(vm => {      console.log(vm)  //vm为vue的实例      vm.$nextTick(() => {        vm.scroll = new Bscroll(vm.$refs.qiehuan)        let bScrollY = store.getters.bScrollY        vm.scroll.scrollTo(0, bScrollY)        console.log(vm.scroll.y)//y为负数      })    })  },  beforeRouteLeave (to, from, next) {
//记录离开时的位置 console.log(this.scroll.y) let position = this.scroll.y this.$store.commit('changebScrollY', position) next() }

 next(vm=>{console.log(‘next’) }) 

这个里面的代码很晚执行,执行时机在组件mounted周期之后

转载于:https://www.cnblogs.com/sunjuncoder/p/9971922.html

你可能感兴趣的文章
如何通过解决精益问题提高敏捷团队生产力
查看>>
打破凉凉诅咒:三个有大量用户基础的区块链项目
查看>>
InfoQ观点:Java EE的未来
查看>>
创新性应用深度学习,IBM在语音识别领域取得了里程碑式突破
查看>>
运用供应链管理实现更快速、更高质量的交付
查看>>
EE4J项目情况汇总,微软加入Jakarta EE工作组
查看>>
华中科大提出EAT-NAS方法:提升大规模神经模型搜索速度
查看>>
Gradle发布4.7版本,支持Java 10
查看>>
大前端时代,如何做好C 端业务下的React SSR?\n
查看>>
分布式团队面临的五大问题及解决办法
查看>>
webpack 热加载你站住,我对你好奇很久了
查看>>
Scala类型系统的目的——Martin Odersky访谈(三)
查看>>
Quarkus:一个Kubernetes原生Java框架
查看>>
Mozilla开发全新的公开网络API WebXR 来实现增强现实
查看>>
多形态MVC式Web架构:完成实时响应
查看>>
如何迅速分析出系统CPU的瓶颈在哪里?
查看>>
艰困之道中学到的经验教训
查看>>
Javaslang 3.0之路
查看>>
Spark Streaming中流式计算的困境与解决之道
查看>>
阿里巴巴收购以色列VR公司,大厂死磕VR为哪般?
查看>>