vue-router:how to not `saveScrollPosition`

vue-router:how to not `saveScrollPosition`

本文关键字:saveScrollPosition not to how vue-router      更新时间:2023-09-26

就我而言,我使用了vuevue-router。我犯了一个问题,有点saveScrollPostion属性不能很好地工作。

这是我的代码:

router.js

export default router => {
"use strict"
router.map({
    //'/': {
    //    component: null
    //},
    '/blogs': {
        component: require('./views/ArticleListPage.vue'),
        subRoutes: {
            '/': {
                component: require('./components/ArticleList/ArticleListSection.vue'),
            },
            '/tag/:name': {
                component: require('./components/ArticleList/ArticleListSection.vue'),
                name: 'tag'
            },
            '/classification/:name': {
                component: require('./components/ArticleList/ArticleListSection.vue'),
                name: 'classification'
            }
        }
    },
    '/projects': {
        component: require('./views/ProjectPage.vue')
    },
    '/about': {
        component: require('./views/AboutPage.vue')
    },
    '/p/:id': {
        component: require('./views/ArticlePage.vue')
    },
    '*': {
        component: require('./views/NotFound.vue')
    }
});
router.beforeEach(()=>{
});

index.js 中,Router实例中有两个设置:

const router = new Router({
    history: true,
    saveScrollPosition: false
});

问题是:如果转到任何/p/:id路线并向下滚动页面,您会发现返回后前一页也滚动了。

我已经阅读了vue-router文档,它说saveScrollPostion

如果您有过渡效果,则可能无法按预期工作。

删除设置或仅将saveScrollPosition更改为 false 时,问题仍然存在。

我想是我写的router.map方法导致了错误的结果。

我也想知道我的项目代码中是否有任何错误,而不是导致此问题的vue-router设置。

此外,我没有在路由转换之间编写任何transition设置。

谢谢大家回答我的问题。

尝试观察 Vue $route属性,例如:

watch: {
    $route: function() {
        window.scrollTo(0,0);
    }
}
相关文章:
  • 没有找到相关文章