跳到主内容

5

React 与 Next.js

组件、状态、副作用、Hooks、并发渲染、服务端组件——现代前端框架的心智模型

必学8 分钟

这一章讲框架层——React 的心智模型和 Next.js 的全栈能力。前四章讲了环境、视觉层、语言层,这一章讲"怎么把前面学的组合成一个应用"。

为什么是 Next.js? 本章涉及服务端组件(RSC)、流式渲染、Server Actions——这些是 React 的特性,但需要一个支持 RSC 的框架来运行。Next.js 是 RSC 生态中最广泛使用的框架(2025 年 State of JS 调查中 React 框架使用率第一),也是本站的生产技术选型。Remix / Redwood / Waku 等框架也支持 RSC,但 API 和约定不同——本章以 Next.js App Router 为默认环境,在涉及 RSC 的地方会注明"这部分需要框架支持"。如果你用的是其他 React 框架:§5.1-5.2(组件 / 状态 / Hooks / 并发)完全通用,§5.3-5.4(RSC / App Router)的概念和心智模型通用,但具体 API 和文件约定需要查对应框架的文档。

第 4 章教你判断"这段 JavaScript 写得对不对",第 5 章教你判断"这个 React 组件设计得好不好"。两件事的关键区别:JS 的正确性可以用语言规范验证(作用域、类型、异步顺序),React 组件的"好"没有规范可查——它取决于你对组件模型、数据流、渲染机制的理解深度

2013 年 React 发布时做了一件事:把 UI 从"命令式 DOM 操作"变成"声明式状态映射"。这个心智转变至今是 React 最核心的价值——你描述"UI 在每种状态下长什么样",React 负责让 DOM 匹配你的描述。十年后(2023-2025),React 经历了第二次大转变:服务端组件(RSC)把渲染从"纯客户端"拆成"服务端 + 客户端两层"。理解这两次转变,你就理解了 React 的设计逻辑。

写给新人:React 是入门前端框架的事实标准——2025 年 State of JS 调查 中超过 80% 的受访者使用过 React。但不要从"怎么用"开始学——从"为什么这么设计"开始。理解组件、状态、副作用这三个概念,比背 20 个 Hook 的 API 有用得多。

写给老前端:如果你最近一次学 React 是 2018-2020 年(Class 组件 + Redux 时代),这一章基本是从头学——Hooks(2019)、并发渲染(2022)、服务端组件(2023-2024)三次迭代改变了 React 的写法范式。旧知识不会作废,但"最佳实践"完全不一样了。


5.1 本章六节速览

标题一句话定位推荐给
5.1React 心智模型组件 / 状态 / 副作用 / Hooks——框架的"为什么"所有人
5.2并发渲染与 SuspenseuseTransition / useDeferredValue / Suspense 边界有性能问题再读
5.3服务端组件与客户端组件RSC 心智模型 / "use client" 边界 / 流式渲染有 React 项目经验再读,资深尤其
5.4Next.js App Router路由 / 数据获取 / 缓存策略 / ISR所有人
5.5状态管理Zustand(推荐)/ Jotai / Redux Toolkit 对比写过 React 的人
5.6样式方案Tailwind CSS(推荐)/ CSS Modules / styled 对比所有人

推荐阅读路径(建议):

你是直接读
新人 / 转行者§5.1 → §5.4 → §5.6(先理解组件 + 路由 + 样式,再深入并发)
写过 Class 组件但没用过 Hooks§5.1 全节 + §5.2 Suspense
会 React 但没接触过 Next.js§5.3 RSC → §5.4 App Router → §5.5 状态管理
在用 Next.js 但 RSC 没搞懂§5.3 全节(RSC 是本章最核心的新概念)
资深,想刷新"最新最佳实践"§5.2 → §5.3 → §5.5(并发 + RSC + 状态管理是最大的变化)

全章通读约 90-120 分钟;按路径挑读 30-45 分钟。§5.1 React 心智模型§5.3 服务端组件 是两个核心——前者是框架的"为什么",后者是 2024+ 最大的架构变化。

本章六节全部完成。第 5 章完。


5.2 React 演进史(必要的回顾)

跟前面几章一样,先看演进。React 的三次大转变,每次都在回答"上一个写法有什么问题"。

年代里程碑留下了什么现在怎么看
2013React 发布(Facebook,Jordan Walke)声明式 UI / Virtual DOM / 单向数据流前端框架时代的起点——这三个概念至今是核心
2015React Native 发布组件模型跨平台复用"Learn Once, Write Anywhere"
2019Hooks(React 16.8)useState / useEffect / 自定义 HookClass 组件时代终结——Hooks 是现代默认写法
2022React 18 并发渲染useTransition / useDeferredValue / Suspense从"同步渲染"到"可中断渲染"
2023React Server Components(Next.js 13.4 App Router)"use server" / "use client" / 流式渲染第二次大转变——渲染模型从客户端扩展到服务端
2024React 19 + React Compiler自动 memo / Server Actions / use() Hook编译器替代手动优化

三条主线值得记住

  1. 从"命令式"到"声明式":2013 年 React 用 UI = f(state) 一个公式替代了 jQuery 的 $('#id').show() / $('#id').hide()。这是 React 最核心的设计原则——你描述结果,框架负责过程

  2. 从"类"到"函数":2019 年 Hooks 把状态和副作用从 Class 组件中解放出来——一个函数就能拥有状态,不需要 this、不需要生命周期方法。这是 React 社区最大的一次 API 范式迁移。

  3. 从"纯客户端"到"服务端 + 客户端":2023 年 RSC 把组件拆成两层——服务端组件可以访问数据库和文件系统,客户端组件处理交互和状态。这是 React 诞生以来最深层的架构变化。

写给老前端:如果你最近一次学 React 是 2016-2018 年(Class 组件 + Redux + componentDidMount),这一章需要完整读。不是因为旧知识过期,是因为**"最佳实践"被 Hooks + RSC 两次重写**——Class 组件不再推荐、Redux 不再是默认选择、getServerSideProps 被 RSC 替代。

写给新人:直接从 Hooks + 函数组件开始学。不要学 Class 组件(this.setState / componentDidMount)——它们在新项目里不出现,React 官方文档也不再推荐。你的起点就是 2024 年的最佳实践


5.3 本章覆盖什么、不覆盖什么

进主干(会详细讲)

  • React 心智模型:组件(组合而非继承)、状态(useState / useReducer)、副作用(useEffect)、Hooks 规则
  • 并发渲染useTransition / useDeferredValue / Suspense 边界 / 流式 SSR
  • 服务端组件:RSC 心智模型 / "use client" 边界 / Server Actions / 流式渲染
  • Next.js App Router:文件系统路由 / 布局嵌套 / 数据获取(fetch 缓存) / ISR
  • 状态管理:Zustand(推荐)/ Jotai / Redux Toolkit 对比——何时用哪个
  • 样式方案:Tailwind CSS(推荐)/ CSS Modules / styled-components 对比——选型决策

不进主干(点到为止或完全不讲)

  • Class 组件this.setState / componentDidMount / shouldComponentUpdate——知道"以前这样写"即可,不学
  • Redux 深度用法:middleware 编写 / createStore 内部实现——Zustand 覆盖 90% 场景,Redux Toolkit 只讲对比
  • React Native:移动端框架是独立话题,本章只讲 Web React
  • Gatsby / Remix:其他 React 框架,讲 Next.js 作为默认推荐
  • Webpack / Babel 深度配置:工具链配置留给第 6 章工程化

判断标准:进主干的都是"当前写 React 项目必须掌握的";不进主干的是"老项目维护可能遇到但新项目不应该用的"。


5.4 本章与其他章节的关系

依赖关系说明
← 第 4 章§4.1 闭包是 Hooks 的基础——不理解闭包就无法理解 useState
← 第 4 章§4.2 Promise / async-await 是 Server Components 的前置知识
← 第 3 章§3.6 动画 / View Transitions 会在 §5.6 样式方案中用到
→ 第 6 章React 项目的构建 / 打包 / 优化是工程化章节的核心
→ 第 7 章React 组件的单元测试 / E2E 测试在第 7 章展开

"AI 可委托清单"在本章的位置:§5.1 / §5.3 / §5.5 每节末尾都有"AI 时代写 React 的最小集"段——明确列出"哪些你可以让 AI 写、哪些你必须自己判断"。


5.5 核心概念速查(会在多节反复出现)

以下是本章反复出现的跨节核心概念——会在多节反复出现,本章每次提到时都会回链回来。

概念一句话定义为什么重要在本章哪里出现
声明式 UI描述 UI 在每种状态下长什么样,框架负责渲染React 最核心的设计原则§5.1 / §5.3 / §5.4
Hooks函数组件里使用状态和副作用的方式替代 Class 组件,现代 React 的默认写法§5.1 / §5.2 / §5.5
Server Components(RSC)在服务端渲染、可以访问数据库的 React 组件2023+ React 最大的架构变化§5.3 / §5.4 / §5.5
Suspense声明式地等待异步数据,显示 fallback并发渲染的核心原语§5.2 / §5.3 / §5.4
App RouterNext.js 13.4+ 的文件系统路由替代 Pages Router,RSC 的默认载体§5.4
缓存(cache)Next.js 的四层缓存体系理解 Next.js 数据流的关键§5.4

访问性说明:React 官方文档(react.dev)和 Next.js 官方文档均为英文但访问稳定,部分页面有社区中文翻译。


5.6 本章的"AI 可委托"总览

任务AI 能帮到什么程度
写基础组件(展示型)✅ 委托 AI,但你要 review props 设计是否合理
写表单 + 校验逻辑✅ 委托 AI,但你要 review 边界条件(空态 / 加载态 / 错误态)
把 Class 组件迁移到 Hooks⚠️ AI 写初版,你要检查 useEffect 依赖数组和闭包陷阱
设计组件拆分策略❌ 你必须判断——AI 不知道你的业务领域和未来变更方向
决定 RSC vs "use client" 边界❌ 你必须判断——AI 会倾向默认 client,但你应该默认 server
选型状态管理库❌ 业务决策——§5.5 给了决策框架,但最终选哪个取决于你的团队和场景
排查 Suspense 边界导致的性能问题❌ Tier 4:需要 profiling + 理解并发调度——AI 只能给通用建议

回顾第 1 章 §1.4的 D1–D5 维度。本章涉及的"框架设计判断"大部分在 D4(需要上下文才能判断对错) + D5(长期委托会失去自保能力)


下一节:§5.1 React 心智模型——组件、状态、副作用、Hooks。