这是一个基于 Vue 3 + TypeScript + <script setup> 的现代化购物商城应用,专门设计用于线上前端开发工程师上机面试。项目使用了Vue 3的最新特性和最佳实践,包含了精心设计的10个核心bug,需要候选人在规定时间内发现并修复这些问题,最后提交代码并创建合并请求。
<script setup> 语法糖测试候选人在以下方面的能力:
<script setup> + TypeScriptgit clone https://github.com/你的用户名/vue-shopping-interview.git
cd vue-shopping-interview
# 推荐使用pnpm (更快的包管理器)
pnpm install
# 或使用npm
npm install
pnpm dev
# 或使用npm
npm run dev
pnpm type-check
# 或使用npm
npm run type-check
本项目包含 10个精心设计的核心bug,每种类型一个,确保面试聚焦和高效:
[逻辑错误] 购物车库存检查缺失 (src/App.vue:62)
[边界条件] 购物车数量更新问题 (src/App.vue:72)
[异步错误] 状态管理错误处理不完整 (src/stores/productStore.ts:15)
[API错误] 错误信息不够详细 (src/api/productApi.ts:47)
[UI处理] 图片加载失败处理缺失 (src/components/ProductList.vue:22)
[计算错误] 购物车总数计算错误 (src/components/ShoppingCart.vue:59)
[响应式问题] 移动端显示异常 (src/components/ShoppingCart.vue:375)
[性能优化] 搜索防抖缺失 (src/components/SearchFilter.vue:55)
[内存泄漏] 事件监听器未清理 (src/components/SearchFilter.vue:67)
src/components/SearchFilter.vue:148)
!important 强制覆盖样式src/ ├── components/ # Vue组件 │ ├── ProductList.vue # 商品列表组件 (BUG 5) │ ├── ShoppingCart.vue # 购物车组件 (BUG 6, 7) │ └── SearchFilter.vue # 搜索筛选组件 (BUG 8, 9, 10) ├── stores/ # Pinia状态管理 │ └── productStore.ts # 商品数据管理 (BUG 3) ├── api/ # API服务层 │ └── productApi.ts # 数据接口 (BUG 4) ├── types/ # TypeScript类型定义 │ └── index.ts # 统一类型导出 ├── App.vue # 主应用组件 (BUG 1, 2) ├── main.ts # 应用入口 └── style.css # 全局样式
如有技术问题或面试相关疑问,请及时联系面试官。
祝愿每位候选人都能发挥出最佳水平! 🎉