Nuxt.js

JavaScriptフレームワーク From Wikipedia, the free encyclopedia

Nuxt(ナクスト)は、Vue.js、Nitro、Vite をベースにして開発された、自由かつオープンソースJavaScript ライブラリである。React をベースにしたフレームワークNext.js に影響を受けている[1]

作者 Alexandre Chopin, Sebastien Chopin, Pooya Parsa
初版 2016年10月26日 (9年前) (2016-10-26)[1]
最新版
4.2.2[2] ウィキデータを編集 / 2025年12月9日 (3か月前)
概要 作者, 初版 ...
Nuxt
Nuxt のロゴ。
作者 Alexandre Chopin, Sebastien Chopin, Pooya Parsa
初版 2016年10月26日 (9年前) (2016-10-26)[1]
最新版
4.2.2[2] ウィキデータを編集 / 2025年12月9日 (3か月前)
リポジトリ ウィキデータを編集
プログラミング
言語
TypeScript
プラットフォーム クロスプラットフォーム
サイズ 57 KB
サポート状況 サポート中
種別 JavaScript ライブラリ
ライセンス MIT ライセンス[3]
公式サイト nuxt.com ウィキデータを編集
テンプレートを表示
閉じる

概要

Nuxt は、ブラウザ側で制御されるシングルページアプリケーション(SPA)としても機能し、サーバ側で描画される静的ウェブページとしても機能する。サーバ側で描画されたページをクライアント側で読み込んだあと、ハイドレーション英語版することで SPA に移行する。これにより、サーバーサイドレンダリングにおける検索エンジン最適化とパフォーマンスの利点、およびクライアントサイドレンダリングにおけるインタラクティブ性の利点を得られる[4][5]

Nuxt は、Vue.js単一ファイルコンポーネントを使用し、サーバサイドレンダリングの複雑な機能を自動的に処理する[6]

Nuxt は、パスに基づくルーティング、Hot module replacement、標準の TypeScript サポート、ミドルウェア、サーバロジックなど、利便性の高い機能を提供する[7]

機能

パスに基づくルーティング

通常の Vue.js アプリケーションでは、すべてのルートを手動で登録する必要がある。Nuxt は、パスに基づくルーティングを使用して、アプリケーション内のすべてのルートを自動的に登録する[8]

ページは app/pages/ フォルダーで宣言され、ページ ファイルの名前がルートの名前になる。ダイナミック ルートは角括弧 [] を使用して追加でき、キャッチオール ルートは JavaScript の配列スプレッド構文のように 3 つのドットと角括弧 [...] を使用して追加できる[9]

  • ~/pages/about.vue - /about に一致する
  • ~/pages/user/[id].vue - /user 直下のすべてのルートに一致する
  • ~/pages/posts/[...slug].vue - /posts 直下のすべてのルートに一致する
  • ~/pages/admin/[[page]].vue - /admin およびその直下のすべてのルートに一致する

自動インポート

Nuxt は、Vue.js の API と、app/components/app/composables/app/utils/ フォルダーに作成されたファイルを自動的にインポートする[10]

<script setup lang="ts">
const count = ref(1) // `ref` が自動的にインポートされる
</script>

レイアウト

Nuxt はサーバーサイド レンダリングに適応したレイアウトを標準でサポートしており、ヘッダーやフッターなどの基本的なテンプレートを複数のページで使用できる[11]。レイアウトは app/layouts/ フォルダーで宣言され、Vue.js のスロットを使用して動作する。

レイアウトを使用するには、エントリ ポイントapp.vue にページのレイアウトを切り替える <NuxtLayout> コンポーネントを追加する必要がある[11]

<!-- app/app.vue -->
<template>
  <div>
    <NuxtLayout>
      <NuxtPage />
    </NuxtLayout>
  </div>
</template>

デフォルトのレイアウトは ~/layouts/default.vue であり、ページ コンテンツ用の <slot> を追加する必要がある。

<!-- app/layouts/default.vue -->
<template>
  <div>
    <AppHeader />
    <slot />
    <AppFooter />
  </div>
</template>

ページでは、セットアップ関数またはブロックで definePageMeta ヘルパーを使用することで、カスタム レイアウトを使用できる[12]

<!-- app/pages/about.vue -->
<script setup lang="ts">
definePageMeta({
  layout: 'custom',
})
</script>

関連項目

脚注

外部リンク

Related Articles

Wikiwand AI