项目梳理
梳理现有项目的业务架构(如电商/后台管理系统)、技术选型(为何选 React 而非 Vue?)、模块划分
用「架构图」展示项目分层(视图层/逻辑层/服务层),标注关键技术点(如微前端/低代码)
todoList 进阶版
技术栈:React + Typescript + Zustand
- 待办事项/删除/修改/筛选(全部、已完成、未完成)
- 本地储存(localStorage 持久化)
- TS 类型定义 (Todo 接口、 Store 类型)
技能掌握
- 熟练用 TS 写 React 组件
- 掌握 Zustand 状态管理
- 理解本地储存方案
问题
- 项目为什么使用 TypeScript ?解决了什么问题
- 如何处理 localStorage 中的数据过期问题
商品列表与详情页
技术栈: React + React Router + Axios
- 商品列表(分页、筛选、排序)
- 商品详情页 (动态路由
/goods/:id
) - 接口请求的封装 (Axios 拦截器)
技能
- 熟练使用 React Router 动态路由
- 掌握接口请求封装的规范
- 理解分页逻辑并实现
问题
- 如何封装一个可复用的 Axios 请求函数?需要考虑哪些点?
- 商品列表的 “分页” 如何实现?如果是 “无限滚动” 呢?
用户登录与权限控制
技术栈:React + Redux Toolkit + React Router
- 登录表单(用户名 / 密码验证、loading 状态)
- Token 管理(登录后存储、请求时携带、过期刷新)
- 权限控制(基于角色显示 / 隐藏菜单、路由拦截)
技能掌握
- 掌握 Redux Toolkit 简化 Redux 代码
- 立即前端权限控制方案
- 熟练处理 Token 相关的逻辑
问题
- 前端如何实现 “Token 过期自动刷新”?
- 基于角色的权限控制(RBAC)在前端如何落地?
表单组件
React + Formik / React Hook Form
- 复杂表单(多字段、嵌套字段、动态添加字段)
- 表单验证(实时验证、提交前验证、自定义校验规则)
- 表单提交(loading 状态、错误提示)
技能掌握
- 掌握主流表单库的使用
- 理解复杂表单的状态管理
- 熟练处理表单验证的逻辑
相关问题
- React Hook Form 相比 Formik 的优势是什么
- 如果处理 “动态表单” (如动态添加输入框)的验证和状态
UI 组件封装
技术栈:React + CSS Module/Styled Components
- Button 组件
- 多种类型
- 尺寸
- 禁用状态
- 点击事件
- Modal 组件
- 显示/隐藏
- 遮盖层
- 自定义内容
- 键盘关闭
技能掌握
- 掌握 React 组件封装的规范
- 理解 CSS 模块化方案
- 熟练处理组件的 props 设计
相关问题
- 如何设计一个高可用的 React 组件?需要考虑哪些点
- CSS Modules 和 Styled Components 的区别是什么? 各自的使用场景
状态管理实战
技术栈:React + MobX + TypeScript
- 购物车的添加/删除/修改数量
- 选中状态管理(全选/反选)
- 价格计算(选中商品的总价、优惠)
技能掌握
- 熟练的使用 MobX 处理复杂状态
- 理解状态设计的合理性
- 掌握 TS 在状态管理中的应用
问题
- 购物车的 ”本地储存“ 和 “接口同步” 如何设计
- 多端(PC/移动端)购物车状态怎么保持一致
性能优化(长列表)
技术栈: React + react-window + useMemo
- 10 万条数据长列表渲染
- 列表筛选、排序(优化计算性能)
- 滚动加载(触底加载更多)
技能掌握
- 理解长列表优化方案
- 理解 useMemo 对计算性能的优化
- 熟练处理滚动事件
问题
- 长列表的 "筛选排序" 如何避免卡断
- 除了虚拟列表,还有哪些长列表的渲染方案