【发布时间】:2021-04-03 14:27:41
【问题描述】:
我有一个/admin/users 的路由,它充当其所有子路由的父路由。 (例如/admin/users/@username/stats 或/admin/users/@username/logs 等)。
也会有很多嵌套路由,那么如何对/admin/users的所有子路由使用特定的中间件呢?
【问题讨论】:
标签: vue.js nuxt.js vue-router
我有一个/admin/users 的路由,它充当其所有子路由的父路由。 (例如/admin/users/@username/stats 或/admin/users/@username/logs 等)。
也会有很多嵌套路由,那么如何对/admin/users的所有子路由使用特定的中间件呢?
【问题讨论】:
标签: vue.js nuxt.js vue-router
您可以将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的所有子路由上应用中间件呢?