nuxtjs项目功能介绍,使用步骤完整配置示例说明和演示

Nuxt.js 是一个基于 Vue.js 的通用应用框架,主要用于构建服务端渲染(SSR)、静态站点(SSG)或单页应用(SPA)。它提供了开箱即用的路由、状态管理、代码分割、SEO 优化等功能,非常适合构建现代化的 Web 应用。


🧩 一、Nuxt.js 核心功能介绍

功能 描述
服务端渲染 (SSR) 提高 SEO 和首屏加载速度
静态站点生成 (SSG) 构建完全静态的网站(适用于博客、文档站等)
自动路由系统 基于 pages/ 目录结构自动生成 Vue Router 配置
模块化架构 支持通过 Nuxt 模块扩展功能(如 Axios、PWA、TailwindCSS 等)
TypeScript 支持 内置 TypeScript 支持
热重载 & 开发服务器 快速开发体验
插件系统 可注入全局方法或第三方库(如 axios、dayjs)
中间件支持 页面级或全局中间件控制访问逻辑
SEO 优化 自动设置 meta 标签、title 等

🛠️ 二、使用步骤(完整配置示例)

步骤 1:创建 Nuxt 项目(以 Nuxt 3 为例)

要求:Node.js ≥ v16

复制代码
# 使用 Nuxt 官方脚手架创建项目
npx nuxi@latest init my-nuxt-app
cd my-nuxt-app

# 安装依赖(推荐使用 pnpm)
pnpm install
# 或 npm install / yarn install

步骤 2:项目结构说明(关键目录)

复制代码
my-nuxt-app/
├── app.vue                # 根组件(替代传统 App.vue)
├── nuxt.config.ts         # Nuxt 配置文件
├── pages/                 # 页面路由(自动路由)
│   └── index.vue          # 首页 → /
├── components/            # 全局组件(自动导入)
├── composables/           # 可组合函数(类似 Vue 的 composable)
├── plugins/               # 插件(如 axios 初始化)
├── public/                # 静态资源(直接复制到根路径)
├── assets/                # 需要构建的资源(如图片、样式)
└── server/                # API 路由(Nitro 服务器端点)
    └── api/
        └── hello.get.ts   # GET /api/hello

步骤 3:编写页面(pages/index.vue

复制代码
<template>
  <div>
    <h1>Welcome to Nuxt 3!</h1>
    <p>Current time: {{ currentTime }}</p>
    <button @click="fetchMessage">Fetch from API</button>
    <p>{{ message }}</p>
  </div>
</template>

<script setup>
const currentTime = ref(new Date().toLocaleTimeString())
const message = ref('')

// 调用本地 API
async function fetchMessage() {
  const res = await $fetch('/api/hello')
  message.value = res.message
}
</script>

步骤 4:创建 API 端点(server/api/hello.get.ts

复制代码
export default defineEventHandler(() => {
  return {
    message: 'Hello from Nuxt Server API!'
  }
})

步骤 5:配置 nuxt.config.ts(可选增强)

复制代码
// nuxt.config.ts
export default defineNuxtConfig({
  // 启用 TypeScript 类型检查
  typescript: {
    strict: true
  },
  // 自定义头部信息(SEO)
  app: {
    head: {
      title: 'My Nuxt App',
      meta: [
        { name: 'description', content: 'A demo Nuxt 3 application' }
      ],
      link: [
        { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
      ]
    }
  },
  // 模块(例如:添加 Tailwind CSS)
  modules: [
    // '@nuxtjs/tailwindcss'
  ],
  // 构建时生成静态站点(可选)
  ssr: true, // 默认 true(SSR),设为 false 则为 SPA
  // target: 'static' 已废弃,Nuxt 3 使用 `ssr: false` + `nitro` 配置
})

步骤 6:运行与构建

复制代码
# 开发模式(带热重载)
pnpm run dev

# 构建生产版本(默认 SSR)
pnpm run build

# 启动生产服务器
pnpm run preview

# 生成静态站点(如果需要 SSG)
# 在 nuxt.config.ts 中设置:
// export default defineNuxtConfig({ ssr: true })
// 然后运行:
pnpm run generate  # 注意:Nuxt 3 中 `generate` 用于静态导出

💡 Nuxt 3 使用 Nitro 引擎,build 默认输出 SSR 应用,generate 输出静态 HTML。


🌐 三、部署方式

类型 命令 部署平台
SSR 应用 buildstart Vercel, Render, Node 服务器
静态站点 generate GitHub Pages, Netlify, Vercel

例如部署到 Vercel(自动识别 Nuxt 3):

复制代码
# 安装 Vercel CLI
npm i -g vercel

# 部署
vercel

✅ 四、演示效果

  1. 访问 http://localhost:3000 → 显示欢迎页和当前时间。
  2. 点击按钮 → 调用 /api/hello → 显示 "Hello from Nuxt Server API!"。
  3. 查看页面源码 → 包含 <h1> 内容(说明 SSR 生效)。
  4. 构建后部署 → 支持 SEO 和快速加载。

🔗 五、官方资源

相关推荐
徐小夕1 小时前
pxcharts Ultra V2.3更新:多维表一键导出 PDF,渲染兼容性拉满!
vue.js·算法·github
心在飞扬2 小时前
ReRank重排序提升RAG系统效果
前端·后端
心在飞扬2 小时前
RAPTOR 递归文档树优化策略
前端·后端
前端Hardy2 小时前
别再无脑用 `JSON.parse()` 了!这个安全漏洞你可能每天都在触发
前端·javascript·vue.js
前端Hardy2 小时前
别再让 `console.log` 上线了!它正在悄悄拖垮你的生产系统
前端·javascript·vue.js
青青家的小灰灰2 小时前
从入门到精通:Vue3 ref vs reactive 最佳实践与底层原理
前端·vue.js·面试
OpenTiny社区3 小时前
我的新同事是个AI:支持skill后,它用TinyVue搭项目还挺溜!
前端·vue.js·ai编程
心在飞扬3 小时前
MultiVector 多向量检索
前端·后端
用户39051332192883 小时前
async 函数返回的 Promise 状态何时变为 resolved
前端
李剑一3 小时前
大屏天气展示太普通?视觉升级!用 Canvas 做动态天气遮罩,雷阵雨效果直接封神
前端·vue.js·canvas