初识 Nuxt

Nuxt 是基于 Vue 3Nitro 的开源全栈框架。它能把一堆 .vue 文件直接变成一个生产级应用:SSR、文件式路由、自动导入、通用部署,全部开箱即用。

为什么选 Nuxt?

  • 约定优于配置:一套有主张的目录结构,自动化搞定重复劳动。
  • SSR 默认开启:首屏更快、SEO 更好、低性能设备也友好。
  • 随处部署:Node、Deno、静态托管、Serverless、Edge 都支持,没有厂商锁定。
  • 同构数据获取useFetch / useAsyncData 在服务端与客户端行为一致。
  • 零配置 TypeScript:类型和 tsconfig.json 自动生成,不需要配置。
  • 模块生态成熟:Pinia、Tailwind、Content、Image、i18n、Auth Utils…… 一行命令装上。

框架自带能力

  • 文件式路由app/pages/ 下每个文件就是一条路由。
  • 代码分割:每个路由只加载最小的 JS。
  • 自动导入:组件、composable、工具函数都不需要手动 import
  • SEO 辅助useHeaduseSeoMeta<Title><Meta>
  • 错误边界error.vueNuxtErrorBoundarycreateError
  • 混合渲染:通过 routeRules 为每条路由指定 SSR / ISR / SWR / 预渲染 / 纯 CSR。

服务端引擎:Nitro

Nitro 是 Nuxt 的 HTTP 引擎,内部基于 h3,带来:

  • 完整的服务端能力(server/apiserver/middleware)。
  • 15+ 部署预设,一键输出到 Vercel / Netlify / Cloudflare Workers / AWS Lambda / Deno 等。
  • 通过 routeRules 实现混合渲染。

生产环境构建后只生成一个 .output/ 目录,可以运行在任何 JS 运行时上。

架构一瞥

Nuxt 由若干单一职责的包组成:

  • 核心引擎:nuxt
  • 打包器:@nuxt/vite-builder@nuxt/rspack-builder@nuxt/webpack-builder
  • CLI:@nuxt/cli
  • 服务端引擎:nitro
  • 开发套件:@nuxt/kit(用于编写模块与 Layer)

Nuxt 与 Next.js 对照

维度 Nuxt (Vue) Next.js (React)
路由 app/pages/ 文件式 app/ 文件式
渲染 SSR / SSG / ISR / CSR(routeRules SSR / SSG / PPR / ISR(App Router)
数据获取 useFetchuseAsyncData$fetch Server Components、fetchuse()
服务端原语 Nitro + server/api Route Handlers + Server Actions
运行时目标 Node / Deno / Workers / Edge / 静态 Node / Vercel / Adapter

两者都推崇“App Router + 约定”。Nuxt 更强调约定与预设,Next.js 更押注 React Server Components。

本书会讲什么

整本书 16 章,围绕 Nuxt 4 的实战路线展开:

  • 文件系统如何映射到你的应用(视图、页面、布局、资源)。
  • 如何在服务端和客户端安全地获取、修改、缓存与共享数据。
  • 如何把 SEO、过渡动画、错误处理、混合渲染这些生产特性落地。
  • 如何用 Layer、模块与自定义部署扩展 Nuxt。

准备好了?先装上它,写下第一页。

初識 Nuxt

Nuxt 是建基於 Vue 3Nitro 的開源全棧框架。它能把一堆 .vue 檔案直接變成生產級應用:SSR、檔案式路由、自動匯入、通用部署,全部開箱即用。

為甚麼選 Nuxt?

  • 約定優於設定:一套有主張的目錄結構,自動化處理重複工作。
  • 預設 SSR:首屏更快、SEO 更佳、在低效能裝置上也順暢。
  • 隨處部署:Node、Deno、靜態代管、Serverless、Edge 全都支援,沒有廠商鎖定。
  • 同構資料獲取useFetch / useAsyncData 在伺服器端與客戶端行為一致。
  • 零設定 TypeScript:類型與 tsconfig.json 自動產生,毋須額外設定。
  • 模組生態成熟:Pinia、Tailwind、Content、Image、i18n、Auth Utils…… 一行指令搞掂。

框架內建能力

  • 檔案式路由app/pages/ 中的檔案即路由。
  • 程式碼分割:每條路由只載入最少 JS。
  • 自動匯入:元件、composable、工具函式無需手動 import
  • SEO 工具useHeaduseSeoMeta<Title><Meta>
  • 錯誤邊界error.vueNuxtErrorBoundarycreateError
  • 混合渲染:透過 routeRules 為每條路由指定 SSR / ISR / SWR / 預渲染 / 純 CSR。

伺服器引擎:Nitro

Nitro 是 Nuxt 的 HTTP 引擎,內部基於 h3,帶來:

  • 完整伺服器端能力(server/apiserver/middleware)。
  • 15+ 部署預設,一鍵輸出至 Vercel / Netlify / Cloudflare Workers / AWS Lambda / Deno 等。
  • 透過 routeRules 實作混合渲染。

正式環境建置後僅產生一個 .output/ 目錄,可於任何 JS 執行時運行。

架構一覽

Nuxt 由多個單一職責的套件組成:

  • 核心引擎:nuxt
  • 打包器:@nuxt/vite-builder@nuxt/rspack-builder@nuxt/webpack-builder
  • CLI:@nuxt/cli
  • 伺服器引擎:nitro
  • 開發套件:@nuxt/kit(用於撰寫模組與 Layer)

Nuxt 與 Next.js 對照

面向 Nuxt (Vue) Next.js (React)
路由 app/pages/ 檔案式 app/ 檔案式
渲染 SSR / SSG / ISR / CSR(routeRules SSR / SSG / PPR / ISR(App Router)
資料獲取 useFetchuseAsyncData$fetch Server Components、fetchuse()
伺服器原語 Nitro + server/api Route Handlers + Server Actions
執行時目標 Node / Deno / Workers / Edge / 靜態 Node / Vercel / Adapter

兩者皆擁抱「App Router + 約定」路線。Nuxt 更偏向約定與預設,Next.js 則押注 React Server Components。

本書會涵蓋甚麼

全書 16 章,圍繞 Nuxt 4 的實戰路線展開:

  • 檔案系統如何對應到應用結構(視圖、頁面、佈局、資源)。
  • 如何於伺服器端與客戶端安全地獲取、修改、快取並分享資料。
  • 如何將 SEO、過渡動畫、錯誤處理、混合渲染等正式特性落地。
  • 如何用 Layer、模組與自訂部署擴充 Nuxt。

準備好了?先裝起來,動手寫下第一頁。

Introduction to Nuxt

Nuxt is an open-source full-stack framework built on top of Vue 3 and Nitro. It turns a collection of .vue files into a production-grade application with server-side rendering, file-based routing, auto-imports, and universal deployment — all out of the box.

Why pick Nuxt?

  • Conventions over configuration — an opinionated directory layout automates the boring parts.
  • SSR by default — fast first paint, great SEO, works on low-powered devices.
  • Deploy anywhere — Node, Deno, static hosting, serverless, edge. No vendor lock-in.
  • Universal fetching — composables like useFetch / useAsyncData work on server and client alike.
  • Zero-config TypeScript — auto-generated types and tsconfig.json, no setup required.
  • Modular ecosystem — Pinia, Tailwind, Content, Image, i18n, Auth Utils… one line to install.

What's in the box

  • File-based routing — every file in app/pages/ becomes a route.
  • Code splitting — each route ships the minimum JS.
  • Auto-imports — components, composables, and utilities are lifted into scope automatically.
  • Built-in SEO helpersuseHead, useSeoMeta, <Title>, <Meta>.
  • Error boundarieserror.vue, NuxtErrorBoundary, createError.
  • Hybrid rendering — per-route routeRules for SSR, ISR, SWR, prerender, CSR-only.

Server engine: Nitro

Nitro is the HTTP engine powering Nuxt. It uses h3 internally and unlocks:

  • Full control over the server side of your app (server/api, server/middleware).
  • Universal deployment via 15+ presets (Vercel, Netlify, Cloudflare Workers, AWS Lambda, Deno, …).
  • Hybrid rendering through routeRules.

In production Nitro emits a single .output/ directory that runs on any JavaScript runtime.

Architecture at a glance

Nuxt is a collection of focused packages:

  • Core engine: nuxt
  • Bundlers: @nuxt/vite-builder, @nuxt/rspack-builder, @nuxt/webpack-builder
  • CLI: @nuxt/cli
  • Server engine: nitro
  • Dev kit: @nuxt/kit (for authoring modules and layers)

Nuxt vs. Next.js

Axis Nuxt (Vue) Next.js (React)
Routing File-based under app/pages/ File-based under app/
Rendering SSR / SSG / ISR / CSR via routeRules SSR / SSG / PPR / ISR via App Router
Data fetching useFetch, useAsyncData, $fetch Server Components, fetch, use()
Server primitives Nitro + server/api Route Handlers + Server Actions
Runtime targets Node, Deno, Workers, Edge, static Node, Vercel, adapters

Both ship opinionated app routers. Nuxt leans into conventions and presets; Next.js leans into React Server Components.

What you'll build in this book

Across 16 chapters you'll get a practical tour of Nuxt 4:

  • How the filesystem maps to your app (views, pages, layouts, assets).
  • How to fetch, mutate, cache, and share data safely on the server and client.
  • How to ship production features: SEO, transitions, error handling, hybrid rendering.
  • How to extend Nuxt with layers, modules, and custom deployments.

Ready? Let's install it and build the first page.