CHAPTER 02
App Router 路由
文件系统路由、匹配原理、layout 状态保留、并行/拦截路由。核心问题:URL 路径 ↔ 文件树 ↔ 组件树如何焊死成一套约定。
文件系统路由
文件夹 = URL 段,page.tsx 声明可访问入口,[slug] 动态段取 params。
看什么:访问 /basics/about 看静态段;访问 /basics/blog/任意值 看动态段取值。
布局状态保留
layout 包住子路由,切换子路由时 layout 不重新挂载。
看什么:在输入框打字 → 点链接切到 one/two → 输入框内容是否还在。
动态段 vs 捕获段
[slug] 单段、[...slug] 多段,匹配优先级:静态 > 动态 > 捕获。
看什么:访问 /segments/new(静态优先)、/segments/foo(动态)、/segments/foo/bar(捕获)。
路由组 (folder)
括号文件夹不参与 URL,仅用于组织代码 / 共享 layout。
看什么:URL 里没有 (nav)/(noNav) 字样,但两个页面可以带不同外壳。
约定文件 loading/error
loading.tsx 段级兜底,error.tsx 段级错误边界。
看什么:访问 /special-files/slow 看 loading;访问 /special-files/broken 看 error。
并行路由 @slot
一个页面由多个 @slot 并行渲染,各自独立 loading、互不阻塞。
看什么:@analytics 先显示自己的 loading(延迟 1.5s),@team 和主内容立即显示。
拦截路由 (.)
同一 URL,从照片流点开用 Modal 覆盖,直接访问走整页。
看什么:从照片流点开 → Modal 覆盖(URL 变但页面没跳转);刷新 → 整页。