这门课解决什么问题

很多 React 初学者能照着文档写组件、跑通页面,但一旦遇到需要精细控制表单、操作 DOM、或者抽取多个组件共用逻辑时,就会卡住。比如:点击按钮后怎么拿到输入框的值?表单提交时如何实时校验?父组件怎么直接调用子组件里的方法?多个页面都有的“加载中”状态,怎么做到只写一次?这几个问题,正是从“会写组件”到“能写复杂业务”之间的分水岭。

这套课程专门针对 React 中容易含糊的四个进阶点展开:事件处理、Refs、受控/非受控组件、高阶组件(HOC)。它不是泛泛讲 API,而是每个知识点都配一个具体场景——用受控组件实现发表评论功能,用回调 Ref 在组件间传值,用 HOC 提取重复的 state 操作。学完你能明确知道:什么时候该用 Ref,什么时候不该用;表单到底用受控还是非受控;以及 HOC 究竟怎么把公共逻辑“包”起来。

适合什么基础,建议先看哪几块

适合已经会用函数组件和 useState、useEffect 写简单页面、但没系统梳理过进阶用法的开发者。如果你刚看完 React 官方入门教程,或者做过一两个小项目,直接学这门课没有障碍。如果连 JSX、props 都还不熟,建议先补基础再来看。

资料按四个模块组织,建议按顺序看,但可以分优先级:

  • 事件处理(两节)——内容不多但打底,重点看事件对象怎么用、如何给事件传参,后面所有交互都依赖这个。
  • Refs(六节)——这是最实用的部分。重点看“为 DOM 元素添加 Ref”和“Refs 转发”,前者解决获取真实 DOM 节点,后者解决在函数组件里用 Ref。回调 Refs 的两种写法也值得细看,它在组件间传实例时比 useRef 更灵活。
  • 受控与非受控组件(三节)——用“发表评论”这个完整例子对比两种写法,看完你就知道为什么推荐受控组件,以及非受控组件在什么场景下反而更省事。
  • 高阶组件 HOC(七节)——这是全课最硬核的部分。先看“什么是高阶组件”和“属性代理”,理解 HOC 本质就是“一个函数接收组件、返回新组件”。然后看“提取 state 操作”和“反向继承”,这两节能帮你真正理解 HOC 的两种实现思路。如果时间紧,“劫持渲染”和“装饰目标组件”可以留到二刷。

学完能独立做什么,资料怎么配合练习

学完这套课,你能独立完成这些事:给任意表单写受控组件并做即时校验;用 Ref 管理输入框聚焦、媒体播放、或集成第三方 DOM 库;用 Refs 转发把子组件的实例暴露给父组件;把多个组件共用的“加载逻辑”“登录校验”“数据获取”抽成 HOC,减少重复代码。更重要的是,你会建立起“组件复用”的思维——看到重复逻辑时,能判断该用 HOC、还是用自定义 Hook。

这套课是视频讲解,没有配套练习文件,所以“动手”要靠自己。建议每看完一节,立刻在 CodeSandbox 或本地项目里把示例重写一遍,不要只看。尤其受控组件那三节,跟着实现一遍完整的发表评论功能(输入、校验、提交、清空),比看十遍都管用。HOC 部分建议自己造一个场景,比如做一个“带 loading 状态的列表组件”,用属性代理和反向继承各实现一次,对比差异。

另外,课程里讲的是类组件时代的 HOC 写法,但 React 现在推荐函数组件加 Hooks。学的时候注意区分:HOC 的思路(包装、增强)仍然通用,但新代码里优先用自定义 Hook 代替 HOC。这套课适合作为“理解原理”的补充,帮你读懂老项目里的 HOC 代码,而不是新项目首选方案。

课程目录

课程目录18 集
  • 1-1 [事件处理] 事件处理 (31:34).mp4
  • 1-2 [事件处理] 事件处理(续) (10:37).mp4
  • 2-1 [React中的Refs] 为DOM元素添加Ref (26:32).mp4
  • 2-2 [React中的Refs] 为Class组件添加Ref (14:17).mp4
  • 2-3 [React中的Refs] Refs与函数组件 (06:35).mp4
  • 2-4 [React中的Refs] Refs转发的使用 (15:58).mp4
  • 2-5 [React中的Refs] 回调Refs的使用 (12:29).mp4
  • 2-6 [React中的Refs] 回调Refs在组件间的传递 (11:56).mp4
  • 3-1 [受控与非受控组件] 受控组件实现发表评论功能 (30:51).mp4
  • 3-2 [受控与非受控组件] 受控组件实现发表评论功能(续) (17:20).mp4
  • 3-3 [受控与非受控组件] 非受控组件实现发表评论功能 (11:16).mp4
  • 4-1 [高阶组件(HOC)] 什么是高阶组件 (30:09).mp4
  • 4-2 [高阶组件(HOC)] 实现目标组件的属性代理 (24:54).mp4
  • 4-3 [高阶组件(HOC)] 通过Refs获取目标组件实例 (11:32).mp4
  • 4-4 [高阶组件(HOC)] 提取state操作 (26:34).mp4
  • 4-5 [高阶组件(HOC)] 装饰目标组件 (05:25).mp4
  • 4-6 [高阶组件(HOC)] 通过反向继承实现高阶组件 (16:22).mp4
  • 4-7 [高阶组件(HOC)] 劫持渲染目标组件 (12:22).mp4