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

concept / stage 2

React Hooks 核心思想

理解 Hooks 如何让函数组件拥有状态、副作用和可复用逻辑。

ReactIntermediate已完成35 分钟#react#hooks#use-state#use-effect
BEFORE YOU START

学习前置

ReactReact 组件与数据流先学习 ↗

一、这个技术是什么?

函数组件代码清晰,但函数每次重新执行时,普通变量不会自动保留;同时,网络请求、事件监听等副作用也需要被管理。

Hooks 解决了两个问题:让函数组件拥有状态,以及让状态相关逻辑可以被复用和组合。

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

函数组件只能接收输入并返回 UI
↓
有状态逻辑依赖 class 组件
↓
复用逻辑需要高阶组件或 Render Props
↓
嵌套结构复杂、逻辑分散
↓
Hooks 让状态和副作用逻辑回到函数中

三、核心概念

1. useState

useState 让组件保存会变化的数据,并提供更新函数。

2. useEffect

useEffect 用于处理与渲染不同步的副作用,例如请求、订阅和 DOM API。它不是所有逻辑的默认容器。

3. 依赖数组

依赖数组告诉 React:副作用依赖哪些值。依赖不完整可能读到旧数据,依赖过多可能造成重复执行。

4. 自定义 Hook

自定义 Hook 把多个组件都会用到的状态逻辑封装成可复用函数。

5. Hook 调用规则

Hook 通常只能在组件或自定义 Hook 的顶层调用,不能放进条件、循环或普通函数中。

四、运行流程

五、面试复习

一句话回答

Hooks 让函数组件能够使用状态和副作用,并通过自定义 Hook 复用状态逻辑;它依赖稳定的调用顺序来保持状态对应关系。

高频追问

  • useEffect 什么时候执行?
  • 为什么不能在 if 里调用 Hook?
  • useMemo 和 useCallback 解决什么问题?
  • 如何避免 Effect 无限循环?

容易答错

不要把 useEffect 当成“组件生命周期替代品”或“所有异步代码的地方”。应先判断逻辑是否真的与外部系统同步。

六、项目展示

可以为知识库搜索封装 useKnowledgeSearch,为收藏功能封装 useBookmarks。面试时展示:哪些逻辑被复用、依赖如何控制、如何避免组件互相耦合。

INTERVIEW MODE

面试复习

把知识讲给面试官听
ANSWER

Hooks 让函数组件能够使用状态和副作用,并通过自定义 Hook 复用状态逻辑;它依赖稳定的调用顺序来保持状态对应关系。

FOLLOW-UP
  • `useEffect` 什么时候执行?
  • 为什么不能在 if 里调用 Hook?
  • `useMemo` 和 `useCallback` 解决什么问题?
  • 如何避免 Effect 无限循环?
WATCH OUT

不要把 `useEffect` 当成“组件生命周期替代品”或“所有异步代码的地方”。应先判断逻辑是否真的与外部系统同步。

PROJECT PRACTICE

把 React Hooks 核心思想 放进项目里

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

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

相关知识

2 个推荐节点
React · BeginnerReact 组件与数据流30 分钟 · 继续学习 ↗React · Intermediate状态管理与组件通信35 分钟 · 继续学习 ↗
← 上一篇React 组件与数据流下一篇 →状态管理与组件通信

课程目录

  1. 1. useState
  2. 2. useEffect
  3. 3. 依赖数组
  4. 4. 自定义 Hook
  5. 5. Hook 调用规则
  6. 一句话回答
  7. 高频追问
  8. 容易答错

学习关系

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