腾讯-3年社招-前端面试 · 第 1 轮 · 一面
← 已是第一轮 · 返回本次面经 · 第 1 轮 → 本轮概述: 这些题目全面考察了前端工程师在实际项目中需要掌握的核心技术和解决问题的能力,涵盖了从基础原理到工程实践的各个层面。 本轮共 23 道题。答案默认折叠,便于先自行作答。 1. 自我介绍、项目介绍 题目要点 技术栈熟练度、架构经验、性能优化成果、团队协作能力 参考答案 具有3年前端开发经验,专注于现代化前端技术栈和工程化实践。主要负责过大型电商平台的前端架构设计和性能优化工作,熟练掌握 Vue/React 生态系统。在项目中主导了从传统架构向微前端架构的迁移,通过模块联邦和组件库建设提升了团队开发效率。同时在性能优化方面有丰富实践,将核心页面的首屏加载时间优化至2秒以内。 2. 可视化搭建平台中,如何设计数据规范保证组件间数据兼容性?请求收效的具体实现方案是什么? 题目要点 Schema规范、数据校验、适配器模式、请求优化策略 参考答案 建立统一的数据协议规范,定义标准的组件 Schema 结构,包含 props、events、slots 等接口描述。通过 JSON Schema 进行数据校验,确保组件间数据传递的类型安全。实现数据适配器模式,当组件接口不兼容时自动进行数据转换。请求收效方面,采用请求去重和缓存策略,相同请求在短时间内只发送一次,同时建立请求优先级队列,确保关键数据的及时响应。 3. 组件的拖拽行为如何实现?如何为组件动态注入行为(如拖拽、缩放)? 题目要点 事件序列处理、状态管理、装饰器模式、行为解耦 参考答案 拖拽实现基于原生 Drag API 或鼠标事件,通过监听 mousedown、mousemove、mouseup 事件序列。建立拖拽状态管理,记录拖拽起始位置、当前位置和目标位置。动态行为注入采用装饰器模式或高阶组件,将行为逻辑与组件本身解耦。通过 mixin 或 composition API 的方式,在运行时为组件添加拖拽、缩放等交互能力。 4. 如何解决拖拽过程中频繁触发事件导致的性能问题? 题目要点 节流防抖、requestAnimationFrame、事件委托、计算优化 参考答案 使用节流(throttle)限制事件触发频率,通常设置为 16ms 以保持 60fps 的流畅度。采用 requestAnimationFrame 优化动画渲染,确保在浏览器重绘时机执行位置更新。实现事件委托减少事件监听器数量,在容器元素上统一处理拖拽事件。对于复杂计算,使用防抖(debounce)延迟执行,避免在拖拽过程中进行不必要的重计算。 5. 性能优化关注的指标有哪些(如FCP、TTI)?你用了哪些具体手段? 题库原题:前端性能优化指标有哪些?怎么进行性能检测? 题目要点 前端性能评估主要围绕三个维度展开: 页面加载速度、交互响应能力以及页面稳定性。常见指标包括 FP、FCP、LCP 等加载指标,FID 和 INP 等交互指标,以及 CLS 布局稳定性指标。 性能检测通常分为两类方式:开发阶段使用 Lighthouse、Chrome DevTools、WebPageTest 等工具进行实验室分析; 线上环境通过 Performance API 或 web-vitals 采集真实用户性能数据,并结合监控平台进行统计与优化。 参考答案 前端性能通常不会只看单一指标,而是从用户感知加载速度、交互响应速度以及页面稳定性三个维度进行评估。当前行业中比较主流的一套指标体系来自 Google 提出的 Web Vitals,并结合传统的加载性能指标共同评估。 ...