当我导航回我的一条路线时,我希望我的应用程序保持相同的滚动位置。如果我使用浏览器的“后退”按钮向后导航,则可以正常工作,但是当我单击链接(使用nuxt-link创建)时,导航到我的路线时滚动位置会重置为0。
我尝试用自己的替换nuxt.config.js中的scrollBehavior函数。调用了该函数,但是savedPosition参数为null,因此很显然是重置滚动位置的原因。同样,如果我使用浏览器的后退按钮,而不是单击来自其他路径的链接,则没有问题,将savePosition参数设置为其预期值,然后进行滚动。我不明白为什么在使用链接导航时它不起作用以及我该如何解决。任何帮助将不胜感激。
答案 0 :(得分:1)
我相信发生这种情况的原因是nuxt-link
正在将新页面推入后台堆栈。
请牢记,scrollBehaviour
是用空savedPosition
参数调用的,因为这是一个全新的页面。这类似于在进行程序设计导航时调用router.push()
。
我无法找到严格使用nuxt-link
来模拟后退按钮行为的任何方法,但是使用programmatic navigation实现起来很简单:
// go backward one page
router.go(-1)