React Hooks 的本质
相关概念:react
Hooks 不是生命周期里的回调函数,而是一组让函数组件接入 React 能力的函数接口。
核心定义
Hooks 让函数组件可以直接表达:
- 状态
- 副作用
- 上下文
- 引用
- 性能优化
不要把 Hooks 理解成生命周期替身
useEffect 的表现和类组件生命周期有相似处,但它的语义不是“模拟生命周期”,而是“声明副作用和清理关系”。
useEffect(() => {
const timer = setInterval(tick, 1000)
return () => clearInterval(timer)
}, [])这段代码表达的是:
- 副作用要在渲染提交后执行
- 依赖不变时不重复建立
- 作用域销毁时需要清理
执行位置
Hooks 本身在组件函数执行期间被调用。
但像 useEffect 这样的 Hook,真正传入的副作用逻辑会在提交阶段之后运行。
一个判断
如果脑子里想的是“这个 Hook 对应哪个生命周期”,理解通常还停在类组件迁移视角。
更贴近 React 的理解方式是:
这个 Hook 在声明哪种状态关系、依赖关系或副作用关系?
结论
Hooks 的核心价值不是替代生命周期,而是把状态和副作用变成函数组件里的显式结构。