Skip to main content

页面开发

本文档将指导您如何在 Codofly Template 中使用 Next.js 15 的 App Router 创建和管理页面。

Next.js App Router 基础

App 目录结构

Next.js 15 使用 app 目录来定义路由结构,每个文件夹代表一个路由段:

路由规则

在 App Router 中,只有 page.tsx 文件会创建可访问的路由。其他特殊文件如 layout.tsxloading.tsx 等有特定用途。
特殊文件说明:
  • page.tsx - 页面组件,定义路由的 UI
  • layout.tsx - 布局组件,包装子页面
  • loading.tsx - 加载状态 UI
  • error.tsx - 错误边界 UI
  • not-found.tsx - 404 页面 UI
  • route.ts - API 路由处理器

创建新页面

基础页面创建

  1. app 目录下创建新文件夹(路由名称)
  2. 在文件夹内创建 page.tsx 文件
示例:创建产品页面
app/products/page.tsx

带参数的页面

使用方括号 [] 创建动态路由:
app/products/[id]/page.tsx

页面布局

根布局

根布局是必需的,包装所有页面:
app/layout.tsx

嵌套布局

为特定路由段创建专用布局:
app/dashboard/layout.tsx

动态路由

单个参数路由

app/users/[id]/page.tsx

多个参数路由

app/users/[id]/posts/[postId]/page.tsx

捕获所有路由

使用 [...slug] 捕获多个路由段:
app/docs/[...slug]/page.tsx
[...slug] 会匹配 /docs/a/docs/a/b/docs/a/b/c 等所有路径。

页面元数据

静态元数据

app/about/page.tsx

动态元数据

app/blog/[slug]/page.tsx

国际化页面

设置国际化路由

在 Codofly Template 中,国际化通过 [locale] 路由实现:
app/[locale]/page.tsx

国际化布局

app/[locale]/layout.tsx

多语言元数据

app/[locale]/about/page.tsx

最佳实践

1. 页面组件结构

2. 错误处理

app/products/error.tsx

3. 加载状态

app/products/loading.tsx
确保在使用客户端组件时添加 'use client' 指令,在使用服务器端功能时避免使用此指令。

总结

通过 Next.js App Router,您可以:
  • 使用文件系统路由快速创建页面
  • 通过嵌套布局实现复杂的页面结构
  • 利用动态路由处理参数化页面
  • 通过元数据 API 优化 SEO
  • 实现完整的国际化支持
掌握这些概念后,您就能在 Codofly Template 中高效地创建和管理页面了。