← 返回
未分类

Nuxt Project Standard

Use when creating or reviewing Nuxt 3 projects, file routes, pages, layouts, SSR/SSG/SPA behavior, Nuxt data fetching, route middleware, plugins, modules, se...
在创建或审查 Nuxt 3 项目、文件路由、页面、布局、SSR/SSG/SPA 行为、Nuxt 数据获取、路由中间件、插件、模块等时使用。
bovinphang bovinphang 来源
未分类 clawhub v2.4.0 1 版本 100000 Key: 无需
★ 1
Stars
📥 161
下载
💾 0
安装
1
版本
#latest

概述

Nuxt 3 项目规范

适用于使用 Nuxt 3 + Vue 3 + TypeScript 的仓库。

Purpose

规范 Nuxt 3 项目中 SSR/SSG 渲染模式、组合式 API、自动导入、数据获取、路由中间件和模块插件的工程实践,确保约定式开发和类型安全。

Procedure

  1. 先识别目标属于 Nuxt pages/layouts、渲染模式、数据获取、route middleware、plugin/module 还是 server route。
  2. 明确 SSR / SSG / SPA 选择,避免服务端可执行代码依赖 windowdocument
  3. 数据获取优先使用 Nuxt 的 useFetch / useAsyncData,并检查水合一致性。
  4. 路由鉴权、redirect 和权限问题与路由保护 workflow 对齐。
  5. 通用 Vue 组件架构问题分流到 Vue 项目 workflow。

项目结构

├── app.vue                    # 根组件
├── nuxt.config.ts              # Nuxt 配置
│
├── pages/                     # 基于文件的路由
│   ├── index.vue               # /
│   ├── login.vue               # /login
│   ├── dashboard/
│   │   ├── index.vue           # /dashboard
│   │   └── users/
│   │       ├── index.vue       # /dashboard/users
│   │       └── [id].vue       # /dashboard/users/:id
│   └── [...slug].vue          # 捕获所有
│
├── layouts/                   # 布局
│   ├── default.vue
│   └── auth.vue
│
├── components/                # 自动导入组件
│   ├── Button/
│   │   └── Button.vue
│   └── AppHeader.vue
│
├── composables/               # 组合式函数(自动导入)
│   ├── useAuth.ts
│   └── useFetch.ts
│
├── server/                    # 服务端 API
│   ├── api/                   # API 路由
│   │   └── users/
│   │       └── index.get.ts
│   ├── middleware/            # 服务端中间件
│   └── utils/                 # 服务端工具
│
├── plugins/                   # 插件
│   └── i18n.client.ts
│
├── middleware/                # 路由中间件
│   └── auth.ts
│
├── public/                    # 静态资源
├── assets/                    # 需构建的资源
└── types/                     # 类型定义

渲染模式

模式配置说明
------------------------------------
SSR默认ssr: true
SSGnuxt generate预渲染所有页面
SPAssr: false纯客户端渲染
// nuxt.config.ts
export default defineNuxtConfig({
  ssr: true, // 或 false
});

数据获取

  • useFetch / useAsyncData:服务端 + 客户端,自动去重
  • $fetch:直接请求,适合服务端或一次性调用
  • useLazyAsyncData:不阻塞导航,适合非首屏
  • 避免在 setup 顶层混用同步/异步逻辑导致水合不匹配

路由与布局

  • pages/ 下文件自动生成路由
  • 动态路由:[id].vue[...slug].vue
  • 布局:layout 选项或 layouts/default.vue 默认
  • 嵌套路由:pages/parent/child.vue 需配合 NuxtPage

中间件

  • middleware/ 下文件自动注册
  • 页面级:definePageMeta({ middleware: ['auth'] })
  • 全局:nuxt.config.tsrouter.middleware
  • 服务端中间件:server/middleware/

插件与模块

  • 插件:plugins/*.ts,支持 .client.server 后缀
  • 模块:modules/node_modules,在 nuxt.configmodules: []

Constraints

  • 服务端可访问的代码不要依赖 windowdocument
  • 使用 useState 共享状态时注意 SSR 序列化
  • 图片使用 NuxtImg,链接使用 NuxtLink
  • 避免在 setup 顶层使用 await 导致阻塞,优先用 useAsyncData / useFetch

Expected Output

  • 页面按 pages/ 约定式路由组织,动态路由正确配置
  • 渲染模式(SSR/SSG/SPA)选择正确,nuxt.config.ts 配置清晰
  • 数据获取使用 useFetch / useAsyncData,自动去重和水合
  • Composables 和组件自动导入正确,服务端/客户端边界清晰

版本历史

共 1 个版本

  • v2.4.0 当前
    2026-06-01 21:32

安全检测

腾讯云安全 (Keen)

队列中

腾讯云安全 (Sanbu)

队列中

🔗 相关推荐

it-ops-security

Frontend Security Review

bovinphang
用于审查前端安全风险,如XSS、CSRF、敏感数据泄露、不安全的DOM API、不可信的用户输入、认证/令牌处理等。
★ 1 📥 371
dev-programming

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 42,175
dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 687 📥 331,459