docs: setting middleware at build time (#23480)

This commit is contained in:
Kekeocha Justin Chetachukwu 2023-12-14 22:10:37 +01:00 committed by GitHub
parent db3a9f0554
commit 677a144d96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 0 deletions

View File

@ -171,3 +171,31 @@ definePageMeta({
Now, before navigation to that page can complete, the `auth` route middleware will be run.
:link-example{to="/docs/examples/routing/middleware"}
## Setting Middleware At Build Time
Instead of using `definePageMeta` on each page, you can add named route middleware within the `pages:extend` hook.
```ts [nuxt.config.ts]
import type { NuxtPage } from 'nuxt/schema'
export default defineNuxtConfig({
hooks: {
'pages:extend' (pages) {
function setMiddleware (pages: NuxtPage[]) {
for (const page of pages) {
if (/* some condition */ true) {
page.meta ||= {}
// Note that this will override any middleware set in `definePageMeta` in the page
page.meta.middleware = ['named']
}
if (page.children) {
setMiddleware(page.children)
}
}
}
setMiddleware(pages)
}
}
})
```