ページ
extendPages
Nuxt では、app/pages ディレクトリ内のファイルの構造に基づいてルートが自動的に生成されます。ただし、これらのルートをカスタマイズしたいシナリオがあるかもしれません。たとえば、Nuxt によって生成されない動的なページにルートを追加したり、既存のルートを削除したり、ルートの設定を変更したりする必要があるかもしれません。このようなカスタマイズのために、Nuxt は、ページ構成を拡張および変更できる extendPages 機能を提供しています。
使用方法
import { createResolver, defineNuxtModule, extendPages } from '@nuxt/kit'
export default defineNuxtModule({
setup (options) {
const { resolve } = createResolver(import.meta.url)
extendPages((pages) => {
pages.unshift({
name: 'prismic-preview',
path: '/preview',
file: resolve('runtime/preview.vue'),
})
})
},
})
タイプ
function extendPages (callback: (pages: NuxtPage[]) => void): void
パラメーター
callback: ページ設定で呼び出される関数。この配列を要素の追加、削除、変更によって変更できます。注: コピーされた配列への変更は設定に反映されないため、提供されたページ配列を直接変更する必要があります。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
name | 文字列 | false | ルートの名前。プログラムによるナビゲーションやルートの識別に役立ちます。 |
パス | 文字列 | false | ルートの URL パス。設定されていない場合、Nuxt はファイルの位置から推論します。 |
ファイル | 文字列 | false | ルートのコンポーネントとして使用される Vue ファイルへのパス。 |
meta | Record<string, any> | false | ルートのカスタムメタデータ。レイアウト、ミドルウェア、ナビゲーションガードで使用できます。 |
alias | string[] | string | false | ルートのエイリアスパスを1つ以上。複数の URL をサポートするのに役立ちます。 |
redirect | RouteLocationRaw | false | ルートのリダイレクトルール。名前付きルート、オブジェクト、または文字列パスをサポートします。 |
children | NuxtPage[] | false | レイアウトまたはビューのネストのためのこのルートの下のネストされた子ルート。 |
extendRouteRules
Nuxt はNitroサーバーエンジンによって動作します。Nitro を使用すると、リダイレクト、プロキシ、キャッシュ、ルートへのヘッダーの追加などのアクションに役立つ高レベルのロジックを構成に直接組み込むことができます。この構成は、ルートパターンを特定のルート設定に関連付けることで機能します。
使用方法
import { createResolver, defineNuxtModule, extendPages, extendRouteRules } from '@nuxt/kit'
export default defineNuxtModule({
setup (options) {
const { resolve } = createResolver(import.meta.url)
extendPages((pages) => {
pages.unshift({
name: 'preview-new',
path: '/preview-new',
file: resolve('runtime/preview.vue'),
})
})
extendRouteRules('/preview', {
redirect: {
to: '/preview-new',
statusCode: 302,
},
})
extendRouteRules('/preview-new', {
cache: {
maxAge: 60 * 60 * 24 * 7,
},
})
},
})
タイプ
function extendRouteRules (route: string, rule: NitroRouteConfig, options?: ExtendRouteRulesOptions): void
パラメーター
route: 照合するルートパターン。
rule: 一致したルートに適用するルーティングルールの設定。
options: ルート設定に渡すオブジェクト。override が true に設定されている場合、既存のルーティング設定を上書きします。
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
override | ブール値 | false | ルーティングルールの設定を上書きします。デフォルトは false です。 |
addRouteMiddleware
すべてのルートまたは特定のルートで利用できるようにルーティングミドルウェアを登録します。
ルーティングミドルウェアは、addRouteMiddleware コンポーザブルを介してプラグインで定義することもできます。
使用方法
import { addRouteMiddleware, createResolver, defineNuxtModule } from '@nuxt/kit'
export default defineNuxtModule({
setup () {
const { resolve } = createResolver(import.meta.url)
addRouteMiddleware({
name: 'auth',
path: resolve('runtime/auth'),
global: true,
}, { prepend: true })
},
})
export default defineNuxtRouteMiddleware((to, from) => {
// isAuthenticated() is an example method verifying if a user is authenticated
if (to.path !== '/login' && isAuthenticated() === false) {
return navigateTo('/login')
}
})
タイプ
function addRouteMiddleware (input: NuxtMiddleware | NuxtMiddleware[], options?: AddRouteMiddlewareOptions): void
パラメーター
input: 次のプロパティを持つミドルウェアオブジェクト、またはミドルウェアオブジェクトの配列。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
name | 文字列 | true | ミドルウェアの名前。 |
パス | 文字列 | true | ミドルウェアへのファイルパス。 |
global | ブール値 | false | true に設定されている場合、すべてのルートにミドルウェアを適用します。 |
options: 次のプロパティを持つオブジェクト。
| プロパティ | タイプ | デフォルト | 説明 |
|---|---|---|---|
override | ブール値 | false | true の場合、同じ名前のミドルウェアを置き換えます。 |
prepend | ブール値 | false | true の場合、既存のミドルウェアの前にミドルウェアを追加します。 |