模拟面试复盘

#题目你的回答表现分析与建议
1浏览器渲染流程✅ 结构清晰,概念正确✔️ 渲染树、layer tree 等术语出现到位。建议加强绘制 vs 合成的区别理解。
2事件循环✅ 机制掌握不错微任务/宏任务逻辑有清晰节奏。可以提及常见 API 对应的任务类型(如 setTimeout 是宏,Promise 是微)。
3React 中的 setState 是同步还是异步的?为什么有时候打印不到最新值?⚠️ 概念接近,但有误❌ ” 手动触发更新 ” 表述不准确。setState批量异步合并触发更新,不是等待「下一次视图更新」才变。建议理解 useEffect/flushSync
4前端怎样优化长列表?✅ 核心抓住了建议再加上 react-windowreact-virtualized 之类的库名,提高实战性。
5虚拟列表实现✅ 代码实战能力 OK示例可再完善,例如用更完整的 ref + scrollTop 计算逻辑替代 IO API。建议对两种虚拟滚动方式都能写出。
6React 组件之间有哪些通信方式?适用于哪些场景?✅ 答题结构优秀props → context → 状态管理,层级分明。建议记住典型场景 + 反模式(如滥用 context)。
7函数组件每次渲染都重新执行,为什么 React 还能保留状态、函数引用?这些数据是怎么“记住”的?⚠️ 概念混合,有闭包误区❌ 状态并不是因为闭包被保留,而是因为 React 的 fiber 和 hooks 链维护了状态。闭包反而经常导致 ” 旧值问题 “。建议区分作用域 vs React 内部机制。
8React 的 Diff 算法是怎么工作的?为什么性能很高?✅ 方向正确但需展开你提到 ” 最小更新 “,是关键点。建议记住:同层比较、key 优化、组件重用三件事。