雷姆 Agent·念念工作台
首页文章项目

architecture / stage 3

Next.js App Router 路由系统

通过 app 目录、文件约定和动态参数理解 Next.js 如何把目录映射成 URL。

Next.jsBeginner已完成30 分钟#nextjs#app-router#routing#layouts
BEFORE YOU START

学习前置

Next.jsNext.js 核心架构先学习 ↗

一、这个技术是什么?

传统项目需要单独维护路由表,页面文件、布局文件和错误处理文件之间容易失去对应关系。

App Router 让目录结构参与路由设计:目录表达 URL 层级,特殊文件表达页面、布局、加载和错误边界。

二、没有它之前发生了什么?

路由表和页面文件分开维护
↓
URL、布局和代码位置容易不一致
↓
嵌套路由需要手动处理共享 UI
↓
Next.js 用文件约定表达页面结构

三、核心概念

1. page.tsx

page.tsx 表示一个可以被访问的页面入口。

2. layout.tsx

layout.tsx 提供同一层级及其子路由共享的布局,例如导航和侧栏。

3. Dynamic Segment

[slug] 或 [id] 表示动态参数,例如 /knowledge/[slug]。

4. loading.tsx 与 error.tsx

它们分别提供加载状态和错误边界,让页面不必把所有状态都写在一个组件里。

5. generateStaticParams

它可以在构建时告诉 Next.js 哪些动态参数需要预生成,适合知识库详情页。

四、运行流程

五、面试复习

一句话回答

App Router 用 app 目录和文件约定组织路由,page 表示页面,layout 表示共享布局,动态目录可以接收 URL 参数。

高频追问

  • page.tsx 和 layout.tsx 的区别是什么?
  • [slug] 如何读取参数?
  • 为什么知识详情页适合使用 generateStaticParams?
  • loading.tsx 的作用是什么?

容易答错

不要把目录名简单当成普通文件夹。App Router 中目录层级会影响 URL 和布局嵌套关系。

六、项目展示

当前知识平台使用 /knowledge/[slug] 生成详情页,三个样例由同一个动态路由处理,新增 Markdown 后可以自动扩展页面数量。

INTERVIEW MODE

面试复习

把知识讲给面试官听
ANSWER

App Router 用 app 目录和文件约定组织路由,`page` 表示页面,`layout` 表示共享布局,动态目录可以接收 URL 参数。

FOLLOW-UP
  • `page.tsx` 和 `layout.tsx` 的区别是什么?
  • `[slug]` 如何读取参数?
  • 为什么知识详情页适合使用 `generateStaticParams`?
  • `loading.tsx` 的作用是什么?
WATCH OUT

不要把目录名简单当成普通文件夹。App Router 中目录层级会影响 URL 和布局嵌套关系。

PROJECT PRACTICE

把 Next.js App Router 路由系统 放进项目里

用真实项目验证概念,再把架构、取舍和结果整理成面试时可以讲清楚的案例。

Hermes AgentAgent 工作流与工具调用
个人博客技术文章与工程实践展示
AI 知识平台当前 Markdown 驱动的知识系统
KEEP EXPLORING

相关知识

2 个推荐节点
Next.js · BeginnerNext.js 核心架构25 分钟 · 继续学习 ↗Next.js · IntermediateServer Components 与 Client Components35 分钟 · 继续学习 ↗
← 上一篇Server Components 与 Client Components下一篇 →Next.js 数据获取与缓存机制

课程目录

  1. 1. page.tsx
  2. 2. layout.tsx
  3. 3. Dynamic Segment
  4. 4. loading.tsx 与 error.tsx
  5. 5. generateStaticParams
  6. 一句话回答
  7. 高频追问
  8. 容易答错

学习关系

  • 阶段:3
  • 顺序:3
  • 前置知识:1
  • 相关知识:2
  • 更新时间:2026-08-02