前端面试-React篇
核心概念与虚拟DOM
- React的虚拟DOM如何工作?Diff算法优化策略是什么?
- JSX的本质是什么?与模板引擎(如Vue)有何区别?
- React组件生命周期(类组件)的关键阶段是什么?
- 受控组件与非受控组件的区别及适用场景?
- 为什么React强调"单向数据流"?
Hooks深度
useEffect
的依赖数组如何控制副作用执行?
- 为什么Hooks必须遵循"调用顺序一致性"规则?
useMemo
和useCallback
的区别与使用场景?
- 如何用
useReducer
替代复杂的状态逻辑?
useRef
的常见用途(DOM引用、持久化值)?
useLayoutEffect
与useEffect
的执行时机差异?
- 如何避免Hooks中的闭包陷阱?
React 18+新特性
- 并发模式(Concurrent Mode)解决了什么问题?
useTransition
和useDeferredValue
的作用与区别?
- React Server Components(RSC)的核心优势是什么?
- Suspense组件的应用场景及工作原理?
- 自动批处理(Automatic Batching)如何优化渲染性能?
- 流式渲染(Streaming SSR)的实现原理?
状态管理
- Context API适合哪些场景?如何避免重复渲染?
- Redux Toolkit相比原生Redux有哪些改进?
- Zustand和Recoil的轻量级状态管理方案有何优势?
- 如何实现跨组件树的全局状态共享?
- Redux中间件(如Thunk/Saga)的工作原理?
性能优化
- React.memo与PureComponent的区别及使用场景?
- 如何定位React应用性能瓶颈?常用工具有哪些?
- 虚拟化列表(如react-window)如何优化长列表渲染?
- 代码拆分的实现方式(动态import、React.lazy)?
- 如何避免不必要的子组件重渲染?
高级模式与设计
- 高阶组件(HOC)的典型应用场景及局限性?
- Render Props模式如何实现逻辑复用?
- 组合(Composition)与继承(Inheritance)在React中的实践?
- React Portal的应用场景(模态框、全局弹窗)?
- 如何设计可复用的自定义Hook?
实战场景
- 如何实现表单的复杂校验与提交(react-hook-form)?
- 如何集成第三方图表库(如Echarts)并避免内存泄漏?
- 如何实现路由懒加载与权限控制(React Router v6)?
- 如何优化首屏加载时间(SSR/SSG)?
- 如何处理全局错误(Error Boundary)与异常监控?
测试与调试
- 如何用React Testing Library测试组件交互?
- 如何模拟用户事件(点击、输入)进行端到端测试?
- React DevTools的Profiler工具如何使用?
- 如何调试Hooks的状态更新问题?
生态系统与架构
- Next.js中SSR与SSG的实现原理及选型建议?
- 如何在React中集成GraphQL(Apollo Client/React Query)?
- 微前端架构下React应用的模块化设计?
- React Native与React核心的异同点?
前沿与未来趋势
- React Server Components与传统SSR的区别?
- 如何利用React的并发特性优化用户体验?
- React在WebAssembly中的应用可能性?
- 2025年React生态可能有哪些重大变化?