首页 > 解决方案 > Vue路由器总是重定向到错误页面

问题描述

我正在尝试在用户未登录时设置重定向。但是当我像在我的示例中那样执行此操作时,URL 会更改,但我This page could not be found是从 nuxt 获取的。该代码位于 plugins 文件夹内的 login.js 中。然后我像这样将它包含在 nuxt 配置中。

plugins: [
    '~/plugins/login.js'
],

这是处理重定向的实际代码

export default ({ app, store }) => {
  app.router.beforeEach((to, from, next) => {
    const loggedIn = store.state.account.loggedInAccount
    if (!loggedIn) {
      if (to.path !== '/redirect') {
        next({ path: '/redirect' })
      } else {
        next()
      }
    } else {
      next()
    }
  })
}

看起来路线尚未安装。

标签: vue.jsnuxt.jsvue-router

解决方案


你应该尝试使用middleware. beforeEach这是官方文档中提到的实现功能的常规方式。你可以从这里读到它。如果可以访问中间件内部的route对象、store对象和函数,那么在验证后使用指向其他路由。redirectredirect


推荐阅读