【问题标题】:Is there a way to redirect a route inside group route?有没有办法在组路由中重定向路由?
【发布时间】: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


    【解决方案1】:

    您可以在/admin/index.vue 中使用middleware,它的context 参数中有一个redirect 方法:

    <script>
    export default {
      middleware({ redirect }) {
        redirect(301, '/admin/login')
      }
    }
    </script>
    

    【讨论】:

    • 官方文档有没有进一步阅读的指南?我不擅长搜索关键字
    • 嘿@tony19 你能看看我的新问题link
    【解决方案2】:

    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
          }
        ]
      }
    ]
    

    【讨论】:

    • 我认为这个答案可能需要描述如何在 Nuxt 项目中使用这个配置。
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2018-07-22
    • 2014-09-16
    • 2011-10-22
    • 2015-11-24
    • 2016-03-09
    • 2013-09-18
    • 1970-01-01
    相关资源
    最近更新 更多