Nuxt

Nuxt

基于 Vue.js 的全栈 Web 框架,默认服务端渲染并按目录约定自动化配置

核心功能

用约定式目录结构把路由、代码分割、数据获取、TypeScript 这些重复工作自动化,让开发者从头到尾只写 .vue 文件。适合需要服务端渲染、静态生成或混合渲染,且不希望被部署平台锁定的 Vue 项目。

功能亮点

少写一半 import

组件与组合式函数按目录约定自动导入,打包时仍会做 tree-shaking,不会带进无用代码

渲染策略按路由配

用 routeRules 让一部分路由预渲染成静态、一部分保持 SSR,同一个项目里混着来

前端项目自带后端

在 server/api/ 下建文件即生成接口,Nitro 在开发期用 Rollup 与 Node.js worker 做上下文隔离

部署产物很轻

生产构建把应用与服务端打进一个 .output 目录,经压缩并剥离 Node.js 模块(polyfill 除外)

没有平台锁定

同一份产物可跑在 Node、Deno、Serverless、边缘环境,也能预渲染后丢到静态托管

适用场景

• 需要 SEO 与快速首屏的 Vue 内容站,靠默认 SSR 直接返回完整 HTML
• 前后端一体的中小型应用,在 server/api/ 里写接口、在 app/pages/ 里写页面
• 同一站点里部分页面要静态、部分要动态时,用 routeRules 做混合渲染

安装配置

bash
前置条件:Node.js 22.x 或更新版本(官方推荐使用当前的 active LTS 版本)。

创建新项目 ——

npm:
npm create nuxt@latest <project-name>

进入项目目录:
cd <project-name>

或直接用 VS Code 打开:
code <project-name>

启动开发服务器(-o 表示自动打开浏览器):
npm run dev -- -o

启动后浏览器会自动打开 http://localhost:3000

使用方法

bash
# 创建项目并跑起来
npm create nuxt@latest <project-name>
cd <project-name>
npm run dev -- -o

# 约定目录(由框架自动识别,无需注册)
# app/pages/          放页面组件,目录结构即路由
# server/api/         放服务端接口,由 Nitro 读取后生成 API
# server/middleware/  放服务端中间件

# 全站静态化,产出可丢到静态托管的文件
nuxt generate

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标Nuxt
价格免费
开源
上手难度进阶

相关工具

同类工具

优点

  • 目录约定覆盖路由、代码分割、数据获取与类型生成,重复性配置基本不用自己动手
  • 自动导入省去大量 import 语句,同时保留 tree-shaking,不以包体膨胀为代价
  • Nitro 让前端项目自带服务端接口层,生产构建收敛成单个 .output 目录
  • 官方明确无供应商锁定,Node、Deno、Serverless、Workers、边缘、静态托管都能部署

缺点

  • 强约定的目录结构意味着要先理解一整套目录含义,偏离约定时需要改配置覆盖默认行为
  • 自动导入让符号来源不那么直观,排查「这个函数从哪来的」时不如显式 import 一目了然
  • 要求 Node.js 22.x 及以上,旧运行时环境需要先升级