阿里巴巴-社招-5年 · 第 1 轮 · 二面
← 第 1 轮 · 返回本次面经 · 第 1 轮 → 本轮要点: 浏览器的缓存机制、react hooks 本轮共 11 道题。答案默认折叠,便于先自行作答。 1. 魔方组件的整体架构设计,包括其模块划分和核心功能 题目要点 略 参考答案 略 2. 你们是如何选择技术栈的?有哪些关键因素影响了决策 题目要点 略 参考答案 略 3. 魔方组件如何实现动态加载,以提升初始加载性能 题目要点 略 参考答案 略 4. 魔方组件如何管理组件的配置信息?组件之间的通信是如何处理的 题目要点 略 参考答案 略 5. 三维模型的加载性能,将加载时间从10秒缩短至3秒都做了哪些操作 题目要点 略 参考答案 略 6. 这个项目中在移动端,你们是如何处理不同设备的适配问题的 题目要点 略 参考答案 略 7. 有没有用服务端渲染(SSR)?如果有,你们是如何实现的 题目要点 SSR 是服务器预先渲染页面,提高首屏性能和 SEO 常用框架有 Next.js、Nuxt.js,也可自研实现 实现时结合服务器渲染和客户端 Hydration 完成完整页面交互 需处理代码共享、数据预取、样式加载及性能优化 了解 SSR 的局限性和优化难点,合理权衡使用场景 参考答案 一、考察点 理解 SSR 的基本概念和优势 掌握常见 SSR 实现方案及其原理 理解 SSR 与客户端渲染(CSR)的区别和协同方式 了解 SSR 在项目中的具体落地方法和技术选型 二、参考答案 2.1 SSR 的基本概念 SSR(Server-Side Rendering)是指在服务器端完成页面的 HTML 渲染,再将完整的 HTML 返回给客户端 相比纯客户端渲染,SSR 提升了首屏渲染速度和 SEO 友好性 用户拿到的是已渲染好的页面,浏览器可以更快显示内容 2.2 SSR 的优势和适用场景 首屏速度快:浏览器无需等待大量 JS 执行即可显示页面 SEO 优化:搜索引擎能抓取到完整的内容,提升排名 社交分享友好:分享链接时可显示完整预览 适合内容型或公共站点,电商、新闻、博客等场景 2.3 常见 SSR 实现方案 Next.js(React):提供开箱即用的 SSR 支持和静态生成 Nuxt.js(Vue):Vue 生态的 SSR 框架,支持服务端渲染和静态导出 自研 SSR:使用 Node.js 搭配 ReactDOMServer 或 Vue SSR API 手动实现 传统模板引擎:如 EJS、Handlebars 等,服务器渲染 HTML 2.4 我们项目中 SSR 的实现方式 使用了 [Next.js / Nuxt.js / 自研 SSR] 作为 SSR 框架 服务器通过 Node.js 环境调用 ReactDOMServer.renderToString 或 Vue SSR 的 renderToString,生成完整 HTML 结合路由系统,实现根据请求 URL 渲染对应页面 页面返回时携带初始数据(通过服务端数据预取),客户端接管 Hydration,实现页面交互 结合缓存策略,优化性能和响应速度 配合 Webpack 和 Babel,保证服务端代码和客户端代码一致性 2.5 实现过程中需注意的问题 服务端和客户端代码共享及差异处理(避免浏览器 API 直接调用) 初始数据的获取与注入,保证页面完整性和交互 处理样式加载,避免闪烁(FOUC) 性能优化,如页面缓存、资源压缩和异步加载 服务器负载和扩展性考虑 三、常见误区或面试陷阱 ❌ 认为 SSR 只是在服务器渲染静态 HTML,忽略客户端 Hydration ❌ 忽视服务端渲染的性能开销和状态同步难题 ❌ 直接复用客户端代码,未处理服务端无 DOM 的环境差异 ❌ 忽略 SEO 以外的性能和用户体验提升点 8. 项目中使用了哪些状态管理工具?为什么选择这些工具 题目要点 状态管理工具选择基于项目规模、团队经验和性能需求 Redux 适合大型复杂应用,MobX 适合响应式需求 Context 适合轻量局部状态管理 结合工具生态和中间件支持,提升开发效率和维护性 合理划分全局与局部状态,避免状态管理复杂化 参考答案 一、考察点 理解不同状态管理工具的特点及适用场景 掌握项目中选择状态管理工具的决策逻辑 能清晰阐述所选工具带来的优势和解决的问题 了解状态管理的基本概念和复杂度控制方法 二、参考答案 2.1 项目中使用的状态管理工具 Redux 适用于大型复杂应用,状态集中管理 具备时间旅行调试、可预测状态变更、丰富中间件生态 MobX 响应式状态管理,自动追踪依赖,适合数据驱动视图更新 代码简洁,学习曲线较低 React Context + useReducer/useState 轻量级状态共享方案,适合中小型或局部状态管理 Recoil / Zustand / Valtio 等轻量方案 现代灵活的状态管理,适合部分场景需求 Vuex(Vue 项目) Vue 官方状态管理库,集中管理全局状态,支持插件扩展 2.2 选择这些工具的理由 项目规模与复杂度 ...