腾讯前端怎么准备

更新于 2026-09-02 · 面试易

腾讯前端面试里,IM 和增长页都很常见。社交场景的难点是输入、未读、弱网和多端,而不是再背一遍 React 调和。

五题覆盖输入性能、红点、重发、多端和体验争议。用你做过的聊天或表单来答。

腾讯怎么面前端

面试阶段与知识点

第一批不把每个阶段拆成独立 URL,避免程序化重复页。阶段对应下面的题,练完再用模拟面试串起来。

值得开口练的题

每题给考察点、思路、结构化参考答案和追问。参考答案用来组织语言,面试时必须换成你自己的项目事实。

输入框每敲一个字列表就卡,原因可能是什么?

难度 中等 · 出现频率 高 · 基础知识

考察点

  • 受控输入
  • 列表重渲染
  • IME

回答思路

高频输入不应触发整棵消息树 reconcile,要把输入状态隔离并兼顾中文输入法组合态。

结构化参考答案

  1. 输入状态放在输入组件内部或独立 store 切片,避免每键更新导致会话列表全量重渲染。
  2. 消息列表项用 memo 包裹,比较 props 时只看 messageId 与内容哈希,跳过无关字段。
  3. compositionstart 到 compositionend 期间不要把中间拼音当作最终消息提交或触发搜索。
  4. 超长草稿用防抖同步到云端,本地即时响应,减少跨组件广播频率。

面试官可能追问

  • 受控和非受控你怎么选?
  • 粘贴一万字怎么办?
  • 如何测输入延迟?

用这道题开始模拟面试

未读红点在会话列表和桌面角标对不上,你怎么查?

难度 中等 · 出现频率 高 · 系统设计

考察点

  • 多入口计数
  • 已读回执
  • 端上缓存

回答思路

红点是多端聚合指标,每个展示入口必须读同一套未读服务并写清聚合公式。

结构化参考答案

  1. 把会话未读、@ 我、系统通知的聚合公式文档化,并为每个入口写自动化对账用例。
  2. 已读回执必须等服务端确认成功才减计数,失败时保持原值并稍后重试。
  3. 端上缓存允许乐观减,但要以服务端定期校准为准,避免长期漂移。
  4. 抽样真实用户做列表红点与角标一致性巡检,异常自动告警。

面试官可能追问

  • 免打扰会话还显不显红点?
  • 系统消息是否计入?
  • 校准闪烁如何避免?

用这道题开始模拟面试

弱网点发送,如何避免重复消息又让用户感觉没发出去?

难度 困难 · 出现频率 高 · 项目深挖

考察点

  • 本地 id
  • 状态机
  • 乱序

回答思路

每条消息带客户端本地 id 做幂等,UI 必须呈现发送中、失败、成功三态,禁止静默丢消息。

结构化参考答案

  1. 用户点击发送后立即插入「发送中」气泡,本地生成唯一 clientMsgId 绑定该条。
  2. 重试请求携带同一 clientMsgId,服务端据此去重,避免弱网重传产生 duplicate。
  3. 失败态展示可点击重发,禁止无提示自动连发,以免用户以为没发出去又狂点。
  4. 回执按 clientMsgId 对齐更新状态,旧回执不能覆盖新消息的状态机。

面试官可能追问

  • 对方已收到但回执丢失?
  • 撤回发送中的消息?
  • 图片上传和文本如何共用状态机?

用这道题开始模拟面试

手机已读,网页还显示未读,怎么同步?

难度 中等 · 出现频率 中 · 编码与实现

考察点

  • 在线通道
  • 冲突
  • 读己之写

回答思路

已读进度以服务端为唯一真源,各端订阅变更并处理读己之写与乱序冲突。

结构化参考答案

  1. 本端标记已读时上报会话 id 与已读水位到服务端,写入成功后本地立即更新 UI。
  2. 其他端通过 WebSocket 或轮询订阅已读进度变更事件,收到后 merge 到本地状态。
  3. 本端读己之写:自己刚标记已读时不应再闪未读,即使推送尚未到达。
  4. 已读水位只允许单调递增,禁止离线旧端把更高进度覆盖回去。

面试官可能追问

  • 端时钟不准怎么办?
  • 离线很久的端如何追赶?
  • 已读回执隐私如何关?

用这道题开始模拟面试

产品要做「已读未读」,隐私同学反对,你怎么推进前端方案?

难度 入门 · 出现频率 中 · 行为与协作

考察点

  • 开关
  • 默认
  • 范围

回答思路

已读能力应做成可关闭、默认策略经隐私评审、范围可逐步缩小的渐进方案。

结构化参考答案

  1. 第一期只做单聊已读开关,群聊不展示已读名单,降低隐私暴露面。
  2. 默认开或关的策略必须走隐私评审,前端按评审结论实现,不自行拍板。
  3. 用户关闭已读后,前端停止发送已读回执且 UI 不再暗示对方是否已读。
  4. 小流量实验观察投诉与留存,用数据支撑是否扩大范围。

面试官可能追问

  • 关闭后历史已读还展示吗?
  • 如何避免假已读?
  • 你怎样记录决策?

用这道题开始模拟面试

和岗位、模拟面试一起用

资料管理里保存目标岗位 JD,模拟面试会按简历出题。点题目下的按钮会把本题带进模拟开场,仍需先绑定简历与岗位。

用模拟面试练腾讯前端