vue-router如何在返回时返回到上次滚动位置 方法集锦

1.在router.js里面(即路由文件中),此时模式为 history

const router = new VueRouter({

mode: ‘history’,

routes,

scrollBehavior (to, from, savedPosition) {

if (savedPosition) {

return savedPosition

} else {

if (from.meta.keepAlive) {

from.meta.savedPosition = document.body.scrollTop

}

return { x: 0, y: to.meta.savedPosition || 0 }

}

}

})

2.在router.js里面需要记录位置的单页面里面

let routes = [

{

path: ‘/’,

name: ‘home’,

component: home,

meta: {

title: ‘home’,

keepAlive: **true

** }

}

3.App.vue里面

 这样写的意义就是不缓存所有页面,哪个地方写了 keepAlive:true,哪个地方就记录位置(加缓存)

<keep-alive >

<router-

view

v-

if

=

KaTeX parse error: Expected 'EOF', got '&' at position 66: …ass="hljs-tag">&̲gt;</span><span…route.meta.keepAlive”

>

</router-

view

>

4.位置确实记录上了(加缓存,返回不刷新页面),也就是说,返回不触发created,所以有些页面需要返回触发的东西都写在activated里面。其实整个过程很简单,代码也很干练,因为这是路由自带的功能,只不过之前没有发现罢了

方法二:

beforeRouteLeave(to, from, next){

let position = window.scrollY()

this.$store.commit('SAVE_POSITION', position) //离开路由时把位置存起来

next()

}

在页面中取值

updated () {

this.$nextTick(<span class="hljs-function"><span class="hljs-keyword" style="font-weight:bold;"><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span class="hljs-function">(</span><span class="hljs-params"></span><span class="hljs-function"><span class="hljs-params"></span>)</span></span>{</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code style="font-family:'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace;color:inherit;background:none;"> <span class="hljs-keyword" style="font-weight:bold;"><span class="hljs-keyword">let</span></span> position = <span class="hljs-keyword" style="font-weight:bold;"><span class="hljs-keyword">this</span></span>.$store.state.position //返回页面取出来

window.scroll(0, position)

})

}

用updated 或者 beforeUpdate 钩子都可以 代码都写在要保存滑动距离的界面

方法三:用默认的hash模式的

**一个list页点击进入detail页,我在这时记录下list页滚动条的位置,然后在detail页返回到list页时设置滚动条位置为刚才保存那个值。

**

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后前端到底应该怎么学才好?

如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。

不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值