面灵AI→

古茗 前端开发 一面:React Fiber 与上传功能实现

轮次
一面
时间
2026-10
来源
牛客网

《面试题目》

  1. 自我介绍。
  2. 围绕实习和非科班校招生,讲讲你的学习路径和跨行理由。
  3. 你最近掌握的技术栈是什么?看过源码吗?了解它的实现思路和设计理念吗?
  4. React Fiber 的架构和实现原理是什么?
  5. 项目里的上传功能具体代码是怎么写的?只讲核心部分。
  6. 你有什么反问?

《参考解析》

React Fiber:Fiber 是 React 16 之后的可中断渲染架构。它把渲染任务拆成一个个 Fiber 节点,形成链表树,每个节点记录 return、child、sibling,配合 requestIdleCallback/Scheduler 的时间切片,把高优先级更新(输入、动画)先做,低优先级更新可被打断、恢复或丢弃。核心目标是让渲染可调度,而不是一次性递归到底。答题时区分 Render 阶段和 Commit 阶段:Render 可中断、可重做,Commit 必须同步完成 DOM 变更和生命周期。

上传功能:核心代码通常包括 <input type="file"> 或拖拽区、FormData 组装、fetch/xhr 上传、进度监听、取消和重试。大文件要分片:按固定大小切片,每片带 index/total/fileHash,服务端合并;断点续传先问服务端已上传分片,再补传缺失部分;并发上传要限流,失败分片重试。还要做前端校验:类型、大小、数量、重复文件,以及上传中禁用提交、失败提示和清理临时状态。面试官追问「具体代码」,要能说出关键 API 和数据流,不要只讲框架封装。

非科班叙事:把跨行讲成一条有证据的线:为什么转、怎么学、做过什么、结果如何。不要只说「感兴趣」,要给出项目、源码阅读、工程实践和持续学习的证据。被质疑 AI 时代校招生能力时,可以回答:AI 降低了写代码的门槛,但提高了判断、调试、系统设计和业务理解的要求,并举一个自己用 AI 提效但最终靠人工验证兜底的例子。