ビュー
app.vue
デフォルトでは、Nuxt はこのファイルをエントリポイントとして扱い、アプリケーションのすべてのルートに対してその内容をレンダリングします。
<template>
<div>
<h1>Welcome to the homepage</h1>
</div>
</template>
main.js がどこにあるのか疑問に思うかもしれません。Nuxt はこれを裏側で行います。コンポーネント
ほとんどのコンポーネントは、ボタンやメニューなどの再利用可能なユーザーインターフェースの断片です。Nuxt では、これらのコンポーネントを components/ ディレクトリに作成すると、明示的にインポートすることなく、アプリケーション全体で自動的に利用できるようになります。
<template>
<div>
<h1>Welcome to the homepage</h1>
<AppAlert>
This is an auto-imported component.
</AppAlert>
</div>
</template>
ページ
ページは、特定のルートパターンごとのビューを表します。pages/ ディレクトリ内のすべてのファイルは、その内容を表示する異なるルートを表します。
ページを使用するには、pages/index.vue ファイルを作成し、app.vue に <NuxtPage /> コンポーネントを追加します (または、デフォルトのエントリとして app.vue を削除します)。これで、pages/ ディレクトリに新しいファイルを追加することで、より多くのページと対応するルートを作成できます。
<template>
<div>
<h1>Welcome to the homepage</h1>
<AppAlert>
This is an auto-imported component
</AppAlert>
</div>
</template>
レイアウト
レイアウトは、複数のページで共通のユーザーインターフェース (ヘッダーやフッターなど) を含む、ページを囲むラッパーです。レイアウトは、ページの内容を表示するために <slot /> コンポーネントを使用する Vue ファイルです。layouts/default.vue ファイルはデフォルトで使用されます。カスタムレイアウトは、ページメタデータの一部として設定できます。
app.vue を <NuxtPage /> と一緒に使用することをお勧めします。<template>
<div>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</div>
</template>
より多くのレイアウトを作成し、ページでそれらを使用する方法を学ぶ場合は、レイアウトセクションで詳細情報を確認してください。
高度な設定: HTML テンプレートの拡張
<head> のみを変更する必要がある場合は、SEO およびメタセクションを参照してください。フックを登録する Nitro プラグインを追加することで、HTML テンプレートを完全に制御できます。render:html フックのコールバック関数を使用すると、クライアントに送信される前に HTML を変更できます。
export default defineNitroPlugin((nitroApp) => {
nitroApp.hooks.hook('render:html', (html, { event }) => {
// This will be an object representation of the html template.
console.log(html)
html.head.push(`<meta name="description" content="My custom description" />`)
})
// You can also intercept the response here.
nitroApp.hooks.hook('render:response', (response, { event }) => { console.log(response) })
})