React 面试真正会问的问题
作者 Aaron Cao · 更新于

首先会考 Hooks 相关问题:useState、useEffect 依赖项,以及过期闭包。接着是渲染相关:协调机制、为什么列表需要 key,以及如何用 memo、useMemo 和 useCallback 控制重渲染。大多数流程还会加一道现场编程题,常见的是“获取数据并过滤列表”或“带防抖的搜索框”。
哪些 React 概念最常被考到?
React 的知识面非常广,很多题库把每个角落都当作同等重要,但事实并非如此。这一节聚焦真正决定大多数面试结果的概念,方便你按照真实的考察分布来练习。以下四类问题最为集中:
- Hooks 机制:hooks 的使用规则、useEffect 依赖数组里该放什么、清理函数(cleanup function),以及 effect 或回调读到旧 state 值的过期闭包问题。
- 渲染:什么会触发重渲染、协调(reconciliation)如何对比树结构,以及为什么列表需要稳定的 key。
- 状态设计:状态提升、受控与非受控输入的区别,以及什么时候该用 context、什么时候该用外部状态库。
- 性能:React.memo、useMemo、useCallback,以及它们何时是噪音、何时真正有用。
面试官会追问每个概念背后的原因。只背出“key 需要唯一”拿不到分;能说清楚 React 在列表重新排序时如何使用 key 才是关键。
现场编程练习会考什么?
大多数 React 面试环节都包含现场搭建一个小组件。以下这些练习题在不同公司之间高度一致:
- 从 API 获取列表数据,渲染出来,并加上文本过滤功能。
- 给搜索输入框加上防抖,并取消过期的请求。
- 搭建一个带校验的表单,使用受控输入。
- 写一个计数器或计时器,并正确清理它的 effect。
- 从重复的逻辑里提取出一个自定义 hook。
举例来说,应聘中级前端岗位的工程师可能需要搭建“获取数据并过滤”的列表,随后会被追问加载状态、错误状态,以及组件在请求过程中被卸载会发生什么。真正决定胜负的是这些延伸问题,基础练习只是入场门槛。
在限时且伴随追问的条件下反复练习,才能把这些变成本能反应;模拟面试页面介绍了如何进行有面试官追问的限时训练。
高级岗位的 React 问题长什么样?
高级岗位的面试会从机制类问题转向判断力类问题。你会被问到状态架构:哪些数据放在组件 state 里、哪些该放进 store、服务端状态和 UI 状态有什么区别,以及缓存该放在哪一层。渲染性能问题会更具体:如何定位一次卡顿交互的根源、该用记忆化(memoization)还是重构,以及如何解读 profiler 的火焰图。
如果团队在 React 之上使用了某个框架,就会涉及服务端渲染和 hydration:什么是 hydration、为什么会出现不匹配,以及把工作移到服务端能带来什么好处。测试相关问题更关注策略——组件级测试和端到端测试分别该测什么,而不是某个测试库的 API 细节。
关于面试形式,以及前端面试流程通常如何编排这些环节,可参见面试类型汇总。
该怎么练习,才能在真实面试中用得上?
看教程只能建立“眼熟”,建立不了“能回想”,而面试考察的正是被人看着时的回想能力。真正有效的办法是按面试的真实形式反复练习:从空文件开始搭建这些标准练习题,边写边讲解思路,并在被打断提问时不丢失思路。相邻技术栈的题库,包括 React 面试仍会从中开场的纯 JavaScript 基础题,都收录在题库汇总页面。
说句实话:React 面试几乎总是在共享编辑器里进行,或者你的屏幕本身就是可见的,屏幕上的任何内容面试官都能看到。AI 助手应该用在准备和练习阶段,而不是共享屏幕的面试现场本身。如果是合规的现场使用场景,SubcueAI 的悬浮窗只在你本机运行,不会有机器人加入通话;练习场景的配置方法见教程页面。