题库开发第十一天:重构与优化
【摘要】 核心功能都做完了,今天没加新功能,花了一天时间把代码收拾了一遍。重构了三个地方。第一个是重复的API调用逻辑,之前每个页面都自己写fetch,抽成了一个api.ts统一管理,改起来方便多了。第二个是刷题模式的状态管理,之前reducer写得有点乱,重构成更清晰的状态机,分成了idle、answering、finished三个阶段,逻辑边界清楚了不少。第三个是列表页的筛选逻辑,之前三个筛选条件...
核心功能都做完了,今天没加新功能,花了一天时间把代码收拾了一遍。
重构了三个地方。第一个是重复的API调用逻辑,之前每个页面都自己写fetch,抽成了一个api.ts统一管理,改起来方便多了。第二个是刷题模式的状态管理,之前reducer写得有点乱,重构成更清晰的状态机,分成了idle、answering、finished三个阶段,逻辑边界清楚了不少。第三个是列表页的筛选逻辑,之前三个筛选条件各自触发请求,现在合并成一个debounce请求,减少了不必要的网络调用。
做了几个用户体验优化。列表页加了一个“批量操作”功能——勾选多道题,可以批量删除或批量标记错题。刷题模式加了进度保存提示,每答完一题自动存localStorage,顶部有个小绿点提示“已自动保存”。组卷页面加了“题量记忆”,下次打开时保留上次选择的题数。
修复了两个遗留bug。一个是移动端键盘弹起时底部按钮被遮挡,加了viewport适配。另一个是Excel导入时重复题目会报错,加了去重校验,导入前先查一遍数据库中是否已存在相似题目(按题目内容去重)。
最后把项目文档整理了一下,写了份简短的README,包含安装步骤、环境变量配置、API接口文档。虽然是自己用,但万一以后开源或者给别人参考呢。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)