这是一个专为前端开发者设计的面试项目,包含 React 和 Vue 两个版本,提供两种不同的面试模式。
web_interview/ ├── react/ # React 版本 (基于 Umi.js) ├── vue/ # Vue 版本 (基于 Vite + Vue 3) ├── README.md # 项目总体说明(当前文件) ├── AI_README.md # React 调试面试题说明 ├── AI_VUE_README.md # Vue 调试面试题说明 └── ONLINE_INTERVIEW.md # 线上上机面试说明
适合场景:考察基础编程能力和从零构建应用的能力
面试时间:40 分钟
技术要求:
实现位置:
react/src/pages/TodoList/index.tsxvue/src/views/HomeView.vue适合场景:考察问题发现、调试能力和 AI 协作能力
面试时间:45-50 分钟
调试对象:
react/src/pages/AiTodo.tsx(功能完整但含有多个 bug)vue/src/views/AiTodo.vue(功能完整但含有多个 bug)详细说明:
AI_README.mdAI_VUE_README.md适合场景:考察 Git 协作能力、代码审查和远程开发技能
面试时间:60-70 分钟
技术要求:
协作流程:
详细说明:请参考 ONLINE_INTERVIEW.md
# 进入 React 项目目录
cd react
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
访问地址:
# 进入 Vue 项目目录
cd vue
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
访问地址:
| 序号 | 功能描述 | 分值 |
|---|---|---|
| 1 | 实现列表的渲染,数据为对象数组 | 8分 |
| 2 | 顶部输入框,回车键添加任务到列表顶部 | 10分 |
| 3 | 复选框标记完成状态,已完成显示删除线 | 12分 |
| 4 | 鼠标悬停显示删除按钮,点击删除事项 | 10分 |
| 5 | 底部全选复选框,显示完成数/总数 | 12分 |
| 6 | 清除已完成任务按钮 | 10分 |
| 7 | 隐藏/显示已完成事项切换按钮 | 12分 |
| 8 | 支持编辑功能 | 10分 |
| 9 | 页面布局设计 | 8分 |
| 10 | 补充 TypeScript 类型 | 8分 |
interface TodoItem {
id: string; // 唯一标识符
text: string; // 任务内容
completed: boolean; // 是否已完成
createdAt: Date; // 创建时间
}
useState 管理状态ref/reactive 管理响应式状态v-model 双向绑定v-for 列表渲染和 v-if 条件渲染React 调试版本 (AiTodo.tsx):
AI_README.mdVue 调试版本 (AiTodo.vue):
AI_VUE_README.md允许使用的 AI 工具:
重要原则:
react/ ├── src/ │ ├── pages/ │ │ ├── index.tsx # 主页面(模式选择) │ │ ├── AiTodo.tsx # 调试面试题(含bug的完整应用) │ │ └── TodoList/ │ │ ├── index.tsx # 从零实现面试题(模板) │ │ └── index.less # 样式文件 │ └── types/ │ └── todo.ts # TypeScript 类型定义 └── package.json
vue/ ├── src/ │ ├── App.vue # 主应用(模式选择) │ ├── views/ │ │ ├── HomeView.vue # 从零实现面试题(模板) │ │ └── AiTodo.vue # 调试面试题(含bug的完整应用) │ └── types/ │ └── todo.ts # TypeScript 类型定义 └── package.json
模式选择建议:
祝你面试顺利! 🎉