MOC-React 面试题
- 基础(组件开发、状态管理、生命周期)
| 示例题目 | 模块 | 知识点 |
|---|---|---|
| JSX 是什么?如何被转换?React 渲染过程是怎样的? | JSX & 渲染机制 | JSX 语法、渲染原理、Virtual DOM |
| 函数组件和类组件有什么区别?生命周期如何映射? | 函数组件 & Class 组件 | 区别、使用场景、生命周期差异 |
| props 和 state 有何区别?state 更新是同步还是异步? | props & state | 单向数据流、状态更新机制 |
| React 中如何绑定事件?事件是如何实现跨浏览器兼容的? | 事件处理机制 | 合成事件、事件绑定方式 |
| 为什么列表渲染需要设置 key?key 的作用是什么? | 条件渲染 & 列表渲染 | 三元表达式、map、key 的作用 |
| componentDidMount 和 useEffect 的区别是什么? | 生命周期 | 挂载、更新、卸载 |
| 如何使用受控组件处理输入?非受控组件用在哪些场景? | 表单处理 | 受控组件、非受控组件 |
| React 组件之间有哪些通信方式?适用于哪些场景? | 组件通信 | 组件通信 |
- 进阶(底层机制、性能优化、调度模型)
| 示例题目 | 模块 | 知识点 |
|---|---|---|
| useEffect 的依赖数组如何工作?如何避免闭包陷阱? | Hooks 原理 | useState、useEffect、useRef、闭包陷阱 |
| 如何在兄弟组件之间共享状态?Context 有哪些限制? | 状态提升 & 共享 | 状态提升、Context API |
| React 的 Diff 算法是怎么工作的?为什么性能很高? | diff 算法 | key、节点复用策略 |
| React 的事件系统是如何实现的?与原生有何区别? | 事件机制 &合成事件 | 合成事件系统、事件委托 |
| React 的并发模式是如何提高性能的?Fiber 是什么? | Concurrent 模式 | Fiber 架构、时间分片 |
| 如何避免组件不必要的重复渲染?useMemo 有哪些陷阱? | 性能优化 | React.memo、useMemo、useCallback |
| setState 是异步的原因?如何强制同步更新? | 异步渲染 & 更新队列 | batched updates、flushSync |
| 父子组件、祖孙组件、兄弟组件之间如何通信? | 组件通信方式 | props、context、回调函数 |
| 自定义 Hook 的最佳实践?有哪些使用限制? | 自定义 Hooks | 封装逻辑复用、抽象副作用 |
| React Router 是如何实现路由变化监听的? | 路由 | React Router 原理、懒加载 |
| React SSR 的原理?hydrate 和客户端渲染的区别? | SSR & Hydration | Next.js、hydrate |
| 函数组件每次渲染都重新执行,为什么 React 还能保留状态、函数引用?这些数据是怎么“记住”的? | Hooks 原理、性能优化 | 为什么函数组件每次执行都重头开始、useState 为什么能 ” 记住 ” 旧值、闭包为什么 ” 看不见 ” 新值 |
| React 中的 setState 是同步还是异步的?为什么有时候打印不到最新值? | Hooks 原理 | setState |
MOC-Vue 面试题e |