【发布时间】:2020-06-09 20:41:26
【问题描述】:
假设我有这个路由配置:
pages
- index.vue
- admin
- login.vue
- register.vue
有没有办法让/admin/login 充当管理路由的索引?我只想将点击/admin 的人重定向到/admin/login。
【问题讨论】:
标签: vue.js nuxt.js vue-router
假设我有这个路由配置:
pages
- index.vue
- admin
- login.vue
- register.vue
有没有办法让/admin/login 充当管理路由的索引?我只想将点击/admin 的人重定向到/admin/login。
【问题讨论】:
标签: vue.js nuxt.js vue-router
您可以在/admin/index.vue 中使用middleware,它的context 参数中有一个redirect 方法:
<script>
export default {
middleware({ redirect }) {
redirect(301, '/admin/login')
}
}
</script>
【讨论】:
vue-router 在路由定义中支持重定向:
https://router.vuejs.org/guide/essentials/redirect-and-alias.html#redirect
const routes = [
/* ... */
{ path: '/admin', redirect: '/admin/login' },
{ path: '/admin/login', name: 'Login', component: LoginComponent },
{ path: '/admin/register', name: 'Register', component: RegisterComponent },
]
你也可以像这样定义嵌套路由:
const routes = [
/* ... */
{
path: '/admin',
redirect: '/admin/login',
children: [
{
path: 'login',
name: 'Login',
component: LoginComponent
},
{
path: 'register',
name: 'Register',
component: RegisterComponent
}
]
}
]
【讨论】: