谈谈你对React的理解
面试速答
- 以下内容以 React 18 为准。
- React 可以理解成一个 以组件为单位构建用户界面的声明式库。
- 它最核心的思想有 4 个:组件化、单向数据流、状态驱动视图、UI 可调度更新。
- React 18 又把重点推进到了自动批处理、并发渲染能力和更细的更新优先级管理。
核心理解
1. React 不是“模板引擎”
它更像一套 UI 编程模型:
- 用组件拆分界面
- 用 props 组织输入
- 用 state 表达变化
- 用 Hook 复用状态逻辑
组件函数本质上就是:
UI = f(state, props)
也就是同样输入应该算出同样输出。
2. React 强调声明式
你不去命令浏览器“先删这个,再插那个”,而是直接声明:
- 现在状态是什么
- 这时界面应该长什么样
剩下的增删改交给 React 完成。
3. React 的更新分成“计算”和“提交”
React 18 里可以粗略理解成两阶段:
- Render 阶段:计算新树,可以被打断
- Commit 阶段:真正改 DOM,必须一次完成
这也是 React 18 能谈“并发渲染”的基础。
React 的几个关键特征
1. 组件化
优点不只是复用,更重要的是:
- 边界清晰
- 状态归属明确
- 测试和维护更容易
2. 单向数据流
数据通常从父到子流动,问题定位更稳定。复杂共享状态再通过:
- Context
- 外部状态库
- 服务端状态库
来补充。
3. Hooks
Hooks 解决的是函数组件里“状态逻辑怎么组织和复用”的问题,不只是语法升级。
4. 调度能力
React 不只是“收到更新就渲染”,而是会判断:
- 哪些更新更紧急
- 哪些可以延后
- 哪些可以合并
这让大应用的交互体验更稳定。
典型题标准答法
问:React 的核心优势是什么?
答:声明式和组件化降低了 UI 维护复杂度,单向数据流提升了可预测性,而 Fiber/调度系统让 React 18 可以做优先级控制和自动批处理。
问:React 18 和之前相比重点变化是什么?
答:核心不是“API 多了几个”,而是更新模型更先进了,比如自动批处理、startTransition 这类优先级更新,以及更完整的并发渲染基础设施。
易错点
- 把 React 说成完整框架,忽略它本质上更偏 UI 层。
- 只会背 JSX 和组件,答不出数据流和调度模型。
- 把“并发渲染”理解成多线程。
速记要点
- React = 组件化 + 声明式 + 单向数据流 + 可调度更新。
- Hook 解决函数组件状态逻辑组织问题。
- React 18 的重点在更新模型,不只是新 API。