【问题标题】:Nuxt.js: Use middlware from a specific route to its all child routesNuxt.js:使用从特定路由到所有子路由的中间件
【发布时间】:2021-04-03 14:27:41
【问题描述】:

我有一个/admin/users 的路由,它充当其所有子路由的父路由。 (例如/admin/users/@username/stats/admin/users/@username/logs 等)。 也会有很多嵌套路由,那么如何对/admin/users的所有子路由使用特定的中间件呢?

【问题讨论】:

    标签: vue.js nuxt.js vue-router


    【解决方案1】:

    您可以将dynamic route 用于/admin/users/_username/_param.vue,并在_param.vue 页面中使用middleware prop

    // /pages/admin/users/_username/_param.vue
    export default {
      middleware({ params, redirect }) {
        console.log('params', params.username, params.param)
    
        // https://nuxtjs.org/docs/2.x/internals-glossary/context#redirect
        // Redirect to the child route, passing along any route parameters.
        // `params.param` is 'stats' or 'logs'
        redirect({ name: params.param, params })
      }
    }
    

    【讨论】:

    • 假设/admin/users的子路由超过10条。那么如何以最少的努力在/admin/users的所有子路由上应用中间件呢?
    • @Swapnil 我在回答中描述的方法仍然适用。您是否有指向可能阐明您的确切情况的存储库的 GitHub 链接?
    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    相关资源
    最近更新 更多