我可以使用空组件创建 Vue 路由吗?

Jos*_*ung 3 vue.js vue-router

假设我有这些路线:

/admin/login
/admin
/admin/dashboard
Run Code Online (Sandbox Code Playgroud)

的目的/admin是根据用户的身份验证状态将用户重定向到/admin/login或。/admin/dashboard所以它没有模板/组件。实现这一目标的正确方法是什么?

我应该创建 Admin.vue 组件仅用于重定向用户吗?或者还有其他方法可以做到这一点吗?

Phi*_*hil 6

听起来你想要一个导航守卫。请参阅https://router.vuejs.org/guide/advanced/navigation-guards.html

例如

[{
  path: '/admin',
  beforeEnter (to, from, next) {
    if (userIsAuthenticated) {
      next({ name: 'admin-dashboard' }) // or next('/admin/dashboard')
    } else {
      next({ name: 'admin-login' })     // or next('/admin/login')
    }
  }
}, {
  path: '/admin/dashboard',
  name: 'admin-dashboard',
  component: ...
}, {
  path: '/admin/login',
  name: 'admin-login',
  component: ...
}]
Run Code Online (Sandbox Code Playgroud)

所以不,您不需要用于Admin从不渲染任何内容的路由的组件。


您可能还需要一个全局导航防护来保护需要身份验证的页面。