本次面经共 2 轮。每轮单独成文;轮次标题重复时,以“第 N 轮”和稳定的轮次 ID 区分。
轮次导航
- 第 1 轮 · 技术面试(22 道题)
- 第 2 轮 · 技术面试(14 道题)
← 已是第一轮 · 返回本次面经 · 第 2 轮 → 本轮概述: 这一轮主要考察了前端技术栈的深度和广度,包括CSS框架、响应式设计、渲染优化、Vue框架的高级特性、HTTP协议、浏览器渲染机制等方面的知识。 本轮共 22 道题。答案默认折叠,便于先自行作答。 1. 项目中为何选择 Tailwind CSS ? 题目要点 灵活性, 可维护性, 现代前端工具链 参考答案 Tailwind CSS 是一个高度可定制的低级 CSS 框架,它提供了大量的原子类,可以快速构建一致且响应式的布局。选择 Tailwind CSS 的原因可能包括其灵活性、可维护性以及与现代前端工具链的良好集成。 2. Tailwind 是怎么解决样式冲突的? 题库原题:Tailwind 是怎么解决样式冲突的? 题目要点 Tailwind 通过原子化 utility 类、统一选择器权重、避免层级嵌套、构建期生成样式以及可预测的覆盖规则,从架构层面降低样式冲突的发生概率。它不是依赖命名规范解决冲突,而是通过设计约束和单一职责类模型,使样式天然解耦,从而让冲突可控且可预测。 参考答案 这个问题如果只回答“因为类名不会冲突”是远远不够的。 Tailwind 解决样式冲突,本质上是通过 设计约束 + 原子化模型 + 构建期生成策略,从源头消除冲突的产生条件,而不是事后避免覆盖。 下面从机制层面拆解。 一、传统 CSS 为什么容易冲突 传统样式冲突来自三个方面: 1. 选择器冲突 .btn { color: red; } .button { color: blue; } 不同模块命名不规范会互相覆盖。 2. 层级嵌套带来的权重问题 .page .btn { ... } 权重升级,导致后续难以覆盖。 3. 样式全局污染 CSS 默认是全局作用域,没有隔离边界。 ...
← 第 1 轮 · 返回本次面经 · 已是最后一轮 → 本轮概述: 这一轮主要考察了项目经验和技术选型,包括Vue3+TS的选择理由、UI框架的优势、TypeScript的应用、组件化方案、Canvas离屏渲染、Service Worker等内容。 本轮共 14 道题。答案默认折叠,便于先自行作答。 1. 讲一下你觉的最有成就感的项目 题目要点 实际问题, 创新性, 用户价值, 项目背景, 技术选型, 实现过程, 最终效果, 亮点, 贡献 参考答案 最有成就感的项目通常是那些能够解决实际问题、具有创新性并且对用户有显著价值的项目。在回答这个问题时,可以从项目的背景、目标、技术选型、实现过程以及最终效果等方面进行详细描述。重点突出项目的亮点和自己在其中的贡献。 2. 项目为什么选择Vue3+TS而非React 题目要点 Vue3 + TypeScript 的选择通常基于团队技术栈一致性、Composition API 带来的逻辑复用能力、与 TypeScript 的良好类型推导,以及在中后台场景中更成熟的生态和更低的工程复杂度,从而提升整体开发效率与可维护性。 参考答案 在技术选型阶段通常会综合考虑团队技术栈、项目复杂度以及开发效率等因素。对于以中后台系统或业务管理平台为主的项目,Vue3 在整体开发体验和约束能力上往往更容易形成统一规范。 首先是框架设计层面的差异。Vue3 通过 Composition API 将逻辑拆分为可组合的函数单元,在复杂业务场景下可以很好地解决 Options API 中逻辑分散的问题,同时又保留了模板语法,使得结构、逻辑、样式之间的职责划分更加清晰。对于需要长期维护的业务项目,这种组织方式通常更容易理解和维护。 其次是 TypeScript 的结合程度。Vue3 在框架层面对 TypeScript 做了较深的适配,例如 defineComponent、setup、ref、reactive 等 API 都有较完整的类型推导能力,配合 <script setup> 可以获得较好的类型提示和开发体验。在大型项目中,类型系统能够帮助提前暴露接口契约问题,提高代码的可维护性。 另外在生态与工程效率方面,Vue3 在国内中后台领域的组件生态较成熟,例如组件库、低代码平台以及相关工具链都比较完善,能够快速搭建业务系统。对于团队成员技术背景主要偏 Vue 的情况下,可以降低学习成本和沟通成本,提高整体开发效率。 从工程复杂度角度看,React 在灵活性上更强,但很多能力需要通过生态组合实现,例如状态管理、表单方案等,需要额外制定规范。Vue3 本身提供了较完整的开发范式,在团队规模较大的情况下更容易形成统一的代码风格。 3. NutUI在营销活动中相比其他UI框架有什么优势 题目要点 移动端, 轻量, 高性能, 易于使用, 组件库, 用户体验, 开发效率, 按需加载, 应用体积 ...