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

时间:2019-02-20 23:13:25

标签: vue.js vue-router

说我有这些路线:

/admin/login
/admin
/admin/dashboard

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

是否应该仅创建Admin.vue组件来重定向用户?还是有另一种方法?

1 个答案:

答案 0 :(得分:3)

听起来像您想要的导航卫士。参见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: ...
}]

因此,不需要,Admin组件永远不会呈现任何内容。


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