第 3 章 · React 进阶主题 章节摘要:核心概念解决「React 怎么工作」,本章解决「真实项目怎么用 React」。性能优化、路由、状态管理、表单、组件设计模式、测试、SSR、错误处理、动画、TypeScript——十个主题覆盖中大型应用的必经之路。每一节都是「先给能跑的代码,再讲选型与取舍」,让你不只会用某个工具,更知道什么时候该用它、什么时候该换掉它。 十个主题听起来很多,但它们不是十个并列的知识点,而是十个「真实项目里会被反复问到的问题」。
章节摘要:核心概念解决「React 怎么工作」,本章解决「真实项目怎么用 React」。性能优化、路由、状态管理、表单、组件设计模式、测试、SSR、错误处理、动画、TypeScript——十个主题覆盖中大型应用的必经之路。每一节都是「先给能跑的代码,再讲选型与取舍」,让你不只会用某个工具,更知道什么时候该用它、什么时候该换掉它。
十个主题听起来很多,但它们不是十个并列的知识点,而是十个「真实项目里会被反复问到的问题」。性能优化回答「界面卡了怎么办」,路由回答「多页面怎么组织」,状态管理回答「数据放哪」,表单回答「用户输入怎么收」,设计模式回答「代码怎么复用」,测试回答「怎么证明代码是对的」,SSR 回答「首屏和 SEO 怎么办」,错误处理回答「崩了怎么兜」,动画回答「体验怎么做」,TypeScript 回答「类型怎么约束」。本章读完,你对「一个 React 项目会遇到什么」会有完整的图景——这正是从「会写 React」迈向「能交付 React 项目」的一步。
阅读完本章,你应当能够:
这十条对应十个主题,也是「面试十连问」——React 面试几乎绕不开性能、路由、状态、测试这几题。逐节学完,面试题和工程问题都有了解法。
这一章的十个能力目标对应十个「面试高频题」,也对应十个「项目里逃不掉的活儿」。逐个学下来,你的 React 能力就不再局限于「写组件」,而是覆盖了「让组件跑得快、组得多、测得住、扛得住」的完整工程面。

这张图把十个主题分成三层:基础层是「应用骨架」,能力层是「工程能力」,增强层是「按需加分项」。它和 mermaid 全景图互补——那张按顺序串成链,这张按能力归成层,两种视角合起来,这章的「地图」就完整了。
这张链条把十个主题串成一条线:前五个解决「应用怎么搭」,中间两个解决「怎么保证质量」,后三个解决「怎么让应用更强」。它是本章的目录,也是中大型 React 应用的能力清单。
金句:进阶主题的共性不是「新 API」,而是「做决定的能力」——性能优化做不做、状态库用哪个、组件拆不拆,每个决定背后都有代价和场景。
这句金句点出本章与前面最大的不同:第 1、2 章讲的是「怎么做」(语法、机制),本章讲的是「怎么选」(方案、取舍)。性能优化不是「把 memo 全加上」,而是「先测量再决定要不要加」;状态库不是「哪个最流行」,而是「我的状态复杂度需要哪个」;动画库不是「越高级越好」,而是「这个效果值不值得引一个库」。培养「做决定」的思维,比记住十个 API 更有长期价值。
React.memo、useMemo、useCallback、虚拟滚动、代码分割、图片优化、Profiler 分析。核心思路是「让 Diff 的假设成立」——先测量后优化。
React Router 的 Router 组件、Routes/Route、Link/NavLink、动态参数 useParams、嵌套路由 Outlet、编程式导航 useNavigate。多页面应用的骨架。
Redux 核心概念与 Toolkit、Zustand、Recoil 的代码对比,建立「按规模选型」的判断框架。先 Context 后升级、够用就好,是贯穿全书的选型哲学。
受控/非受控组件、表单验证、数据提交、React Hook Form 等方案对比。日常占比最高的代码,藏着最多细节坑——实时校验、提交防抖、竞态处理都在这里。
组合、高阶组件 HOC、Render Props、Context 四种模式,各自优劣与适用场景。新代码记住「组合 + 自定义 Hook 优先」,HOC 与 Render Props 用于读存量代码。
单元、集成、E2E、快照四种测试类型,Jest + React Testing Library 的实践。测试的价值不在覆盖率数字,在「改代码不怕了」。
SSR 的原理与优劣,Next.js 的创建、页面、getServerSideProps、文件路由。内容型站点与 SEO 敏感场景的必修课。
错误边界的创建与局限,try/catch 与 Promise rejection 的配合,构建健壮应用。这是「应用崩了怎么办」的完整答案。
CSS 过渡、CSS 动画、react-transition-group、react-spring、framer-motion 从轻到重的方案。按效果复杂度选方案,别让动画库成为第一选择。
TypeScript 的核心类型、React.FC 与 props 类型、高级类型工具,以及 PropTypes 的运行时检查。这是大型项目「可维护性」的起点。
基础层:3.1 性能 ──► 3.2 路由 ──► 3.3 状态 ──► 3.4 表单 (应用骨架) (导航) (数据) (交互) 能力层:3.5 设计模式 ──► 3.6 测试 ──► 3.8 错误处理 (写得更优雅) (改得更放心) (跑得更稳) 增强层:3.7 SSR ──► 3.9 动画 ──► 3.10 TypeScript (更快的首屏) (更好的体验) (更早的发现)
这张 ASCII 图把十个主题分成三层:基础层是「应用骨架」,能力层是「工程能力」,增强层是「按需加分项」。读图的时候可以对照自己的项目问一句:我的项目目前缺哪层?缺的层对应的节,就是你接下来该精读的内容。
前三节(性能、路由、状态)是任何中大型应用的骨架,第 3.4 节表单是交互核心;设计模式、测试、错误处理让代码可维护、可验证、可健壮;SSR、动画、TypeScript 是三个「看业务决定要不要」的增强项。前后虽非强依赖,但 3.1 依赖第 2 章的虚拟 DOM 与闭包知识,3.3 依赖 2.5 节 Context,3.8 依赖 2.2 节生命周期。
十章不必一口气读完,按两种策略取其一:
顺序阅读:适合系统性学习者。前三节打骨架,中间三节补工程能力,最后三节看增强项。每一节都建立在前一节的选型逻辑上,顺序读能感受到「一套决策方法」如何在不同主题上复用。
按需查阅:适合已在项目里的人。碰到性能问题读 3.1,要加路由读 3.2,表单复杂读 3.4。每节相对独立,按需查完回来接着干活。
无论哪种策略,有两节建议必读:3.1 性能优化和 3.3 状态管理选型——它们是中大型项目里「最常见的决策点」,也是最容易被「跟风选型」带偏的地方。