Nuxt.js なくすとじぇいえす
簡単に言うとこんな感じ!
Vue.jsというWeb画面を作るツールに「SEO対策」「ルーティング自動化」「高速表示」などの便利機能をまるごとセットにしたフレームワークだよ。「Vue.jsだけだと自分で組み立てる部品が多い」→「Nuxtならその面倒な設定が最初から整ってる」ってイメージ!
Nuxt.jsとは
Nuxt.js(ナクスト・ジェイエス)は、JavaScriptのUIフレームワーク「Vue.js」をベースに構築された、フルスタックWebフレームワークです。2016年にオープンソースとして公開され、現在は「Nuxt 3」が主流となっています。
Vue.jsだけでWebアプリを作る場合、ページ遷移の仕組み(ルーティング)、SEOのためのサーバーサイドレンダリング、ビルド設定など、多くの部分を自分で組み立てる必要があります。Nuxtはこれらを「設定より規約(Convention over Configuration)」の思想で最初から整えてくれるため、開発者は画面・機能の実装に集中できます。
ビジネス的には「新規Webサービスのスピード立ち上げ」「コーポレートサイトのSEO強化」「ECサイトの高速化」などの場面で選ばれることが多く、フロントエンド専任チームを持たない中小企業のシステム開発でも採用が広がっています。
Nuxt.jsの3つのレンダリングモード
Nuxt.jsの最大の特徴は、目的に合わせてレンダリング(画面の生成方法)を切り替えられる点です。
| モード | 略称 | 仕組み | 向いている用途 |
|---|---|---|---|
| サーバーサイドレンダリング | SSR | リクエストのたびにサーバーで画面を生成して返す | ニュース・ECサイトなど更新頻度が高いページ |
| 静的サイト生成 | SSG | ビルド時に全ページをHTMLファイルとして書き出す | コーポレートサイト・ブログ・ランディングページ |
| クライアントサイドレンダリング | CSR | ブラウザ側でJavaScriptが画面を組み立てる | 管理画面・社内ツールなどSEO不要なページ |
| ハイブリッド | ISR/Hybrid | ページごとに上記を混在させる | 大規模サービス(一部だけSSR等) |
「SSR」と「SSG」をざっくり覚えるコツ
- SSR=「Server が Soon Response(毎回サーバーが即答)」→ リアルタイム性◎
- SSG=「Static Site Generate(静的ファイルを事前に焼く)」→ 表示速度◎・サーバー負荷ゼロ
Nuxt.jsのフォルダ構成(規約ベース)
my-nuxt-app/
├── pages/ ← ここに置いたファイルが自動でURLになる
│ ├── index.vue → "/"
│ └── about.vue → "/about"
├── components/ ← 再利用するUIパーツを置く
├── layouts/ ← ヘッダー・フッターなど共通レイアウト
├── server/ ← APIエンドポイントを置ける(Nuxt 3)
├── composables/ ← ロジックの共通化(Vue 3スタイル)
└── nuxt.config.ts ← 全体設定ファイル
pages/ フォルダにファイルを置くだけでURLが自動生成される(ファイルベースルーティング)のは、開発者にとって大きな時短ポイントです。
歴史と背景
- 2016年10月 — セバスチャン・ショパン氏ら兄弟がNext.js(React版)に触発されてVue.js向けに開発。GitHub公開
- 2018年1月 — Nuxt.js 1.0 正式リリース。SSRとSSGの両対応で注目を集める
- 2020年3月 — Nuxt.js 2.12 リリース。Vue 2との安定稼働が評価され国内企業への採用が急増
- 2022年11月 — Nuxt 3 正式リリース。Vue 3・Vite・TypeScript対応を全面採用。アーキテクチャを刷新
- 2023年〜 — Nuxt 3のエコシステムが成熟。
nuxi(CLIツール)やNuxt UIなど周辺ライブラリが整備され、中規模以上のプロジェクトでも採用が加速
なぜ生まれたか:Vue.jsはUIライブラリとして優秀でも「SSRをゼロから実装するのは難しい」という開発者の課題があった。Nuxtはその「Vue.jsでSSRをする面倒な設定をすべて肩代わり」するために誕生した。
類似フレームワークとの比較
Nuxt.jsと同じ「メタフレームワーク(フレームワークの上に乗るフレームワーク)」カテゴリには、複数の選択肢があります。
| フレームワーク | ベース | 主な用途 | 特徴 |
|---|---|---|---|
| Nuxt.js | Vue.js | Webアプリ全般 | Vue資産を活かせる・SSR/SSG両対応 |
| Next.js | React | Webアプリ全般 | 最大シェア・Vercel製・情報量が多い |
| SvelteKit | Svelte | 高パフォーマンス重視 | バンドルサイズが小さい・学習コスト低め |
| Remix | React | データ取得に強い | Web標準準拠・フォーム処理が得意 |
| Astro | 複数対応 | コンテンツサイト | 超軽量・Vue/React/Svelteのコードを混在可 |
発注・選定時のポイント:
- チームが Vue.jsに慣れている → Nuxt.jsは親和性が高く学習コストが低い
- SEOが重要なサービス(メディア・EC)→ SSRモードで対応可能
- 更新頻度が低いサイト(コーポレート・LP)→ SSGで低コスト・高速運用
- Reactチームがすでにいる → Next.jsの方が合わせやすい場合も
関連用語
- Vue.js — NuxtのベースとなるUIフレームワーク。Nuxtを使う際は基礎として理解が必要
- Next.js — ReactベースのメタフレームワークでNuxtのライバル。最も市場シェアが大きい
- SSR(サーバーサイドレンダリング) — サーバー側でHTMLを生成する手法。SEO改善に効果的
- SSG(静的サイト生成) — ビルド時にHTMLを書き出す手法。高速・低コスト運用の鍵
- Jamstack — JavaScript・API・Markupを組み合わせたWebアーキテクチャの思想
- CDN(コンテンツデリバリネットワーク) — SSGファイルの配信インフラ。世界中に高速配信する仕組み
- TypeScript — Nuxt 3が標準対応するJavaScriptの型付き拡張言語
- Vite — Nuxt 3が採用する超高速ビルドツール。開発体験を大幅に向上させる