nuxt.js - 返回页面时保持滚动位置
问题描述
我正在滚动浏览页面 A 上的长列表。当我访问另一个页面并稍后返回页面 A 时,我想在我离开的滚动位置。
我已经为 Vue ( https://github.com/jeneser/vue-scroll-behavior )找到了这个包,但我无法让它与 NuxtJS 一起使用。
关于我如何最好地解决这个问题的任何建议或想法?
解决方案
您可以通过在 nuxt.config.js 中进行调整来更改路由更改时的滚动行为,如 https://nuxtjs.org/api/configuration-router#scrollBehavior中所述。就我而言,我只将此应用于“/browse”路线。
function scrollBehavior (to, from, savedPosition) {
...
if (to.path === '/browse') {
position = false
}
...
}
我们必须将 设置position
为 false 以保留滚动位置。
要记住滚动位置,我们可以使用像https://github.com/jeneser/vue-scroll-behavior这样的包,我们可以将其作为插件包含到 nuxt 中:
import Vue from 'vue'
import vueScrollBehavior from 'vue-scroll-behavior'
export default ({ app }) => {
Vue.use(vueScrollBehavior, {
router: app.router
})
}
推荐阅读
- java - 数组大小和 .length 的问题
- cordova - 无法设置计划的本地通知:未知属性:触发器
- javascript - 需要验证我在 Javascript 中正确编码需求
- android - 在不指定自动生成的 PK 的情况下实例化 Android Room Entity 对象以进行插入的最佳方法?(科特林)
- c++ - 如何删除链表中的用户定义节点?
- c# - 修改此 C# 代码以使用不同的调用方法
- c# - 如何将 Rebus 数据总线附件与 Rebus.Async 回复一起使用
- java - if-else 语句和运算符的问题
- python - 为什么在 python 3.8 中只使用位置参数?
- git - 如何在 React Native 中使用某人的拉取请求?