Skip to content
# React高频面试题

第一部分:React 基础与核心思想

目标:建立扎实的React理论基础,深度理解React的设计哲学

  1. 如何理解 UI = f(state) 这个公式?

  2. 虚拟DOM是什么?它解决了哪些实际问题?

  3. 为什么说 JSX 不仅仅是模板语法,而是一种 JavaScript 的扩展?

  4. 函数组件和类组件的本质区别究竟是什么?

  5. React 为什么如此强调 Props 的不可变性?

  6. React 的 Fiber 架构主要是为了解决什么问题?

  7. React 中的 key 属性有什么作用?它的内部机制是怎样的,最佳实践是什么?

  8. React 的事件机制和合成事件是如何工作的?

  9. 受控组件和非受控组件有什么区别?应该在什么场景下选择使用它们?

  10. React 的严格模式 (StrictMode) 有什么作用?

  11. 为什么在 React 开发中,我们总是提倡"组合优于继承"?


第二部分:React 状态管理方案

目标:从局部状态到全局状态,构建完整的状态管理知识体系

  1. React的父子组件如何传递参数?兄弟组件如何传递参数?

  2. 使用 useState 的函数式更新方式能带来哪些好处?

  3. "状态提升"这种模式有哪些优缺点?它的适用边界在哪里?

  4. 在一个 React 项目中,你会如何进行状态管理方案的选型?

  5. 如何利用 useContext 和 useReducer 来实现一个轻量级的全局状态管理器?

  6. 如何有效优化因 useContext 引起的性能问题?

  7. 和 useState 相比,useReducer 的优势体现在哪里?我们应该如何在这两者之间做选择?

  8. RTK Query 是如何帮助我们简化数据获取和缓存逻辑的?

  9. 你是否了解像 Zustand、Jotai 这类新兴的状态管理库?它们各自有什么特点?

  10. 为什么说 Immer.js 在现代 Redux 生态中扮演着如此重要的角色?

  11. 像 SWR 或 React Query 这样的库,它们主要解决了什么问题?

  12. 在 React 应用中,有哪些方法可以实现状态的持久化存储?

  13. 你是如何理解 Signals 的?它与 React 现有的状态管理方式有何不同?

  14. Redux 的中间件(Middleware)机制是如何工作的?


第三部分:React Hooks 深度解析

目标:从原理到实践,掌握Hooks的正确使用和性能优化

  1. useEffect 的执行时机具体是什么时候?它和 useLayoutEffect 有什么核心区别?

  2. 你能深入剖析一下 useEffect 的依赖项吗?它背后的原理是什么?

  3. 在 useEffect 中,如何正确地处理异步请求并避免竞态条件(Race Condition)?

  4. 什么时候应该使用 useCallback 和 useMemo?如果滥用它们会带来什么后果?

  5. useRef 有哪些常见的应用场景?它和 useState 的根本区别是什么?

  6. forwardRef 和 useImperativeHandle 这两个 Hooks 是为了解决什么特定问题而设计的?

  7. React 18 新增的 useId 解决了什么问题( SSR 场景下的 ID 冲突、可访问性问题)?

  8. useTransition 和 useDeferredValue 是如何优化用户体验的?它们之间有什么区别?

  9. 你能详细解释一下 React Hooks 的执行顺序和依赖规则吗?


第四部分:React 的最新特性

  1. React 18 中的自动批处理 Automatic Batching 如何工作?

  2. React 19 中的 Activity 组件与 Suspense 有什么区别?

  3. React 19 中的 use Hook 如何简化异步数据处理?

  4. 说一下React 19 对表单处理的改进:useActionState 和 useFormStatus?

  5. React 19 中如何直接在组件中渲染 meta 标签和样式表?

  6. React 19 的 ref 作为 prop 传递有什么优势?

基于 VitePress 的本地知识库