题库开发第三天:填页面,联接口
【摘要】 今天把前端页面填上了。对照着设计图,一口气把题库列表和添加题目两个页面写完了。列表页的筛选栏三个条件:分类下拉、难度星级、标签输入。卡片组件接收题目数据,用星标展示难度,标签用不同颜色的小圆点区分。卡片右上角加了错题标记,点一下变色,数据存本地localStorage(后端还没加这个字段,先凑合用)。添加题目的表单写起来比预想的花时间。题型切换时,表单项要联动变化:单选题显示选项列表,判断题...
今天把前端页面填上了。对照着设计图,一口气把题库列表和添加题目两个页面写完了。
列表页的筛选栏三个条件:分类下拉、难度星级、标签输入。卡片组件接收题目数据,用星标展示难度,标签用不同颜色的小圆点区分。卡片右上角加了错题标记,点一下变色,数据存本地localStorage(后端还没加这个字段,先凑合用)。
添加题目的表单写起来比预想的花时间。题型切换时,表单项要联动变化:单选题显示选项列表,判断题只显示对错按钮,编程题显示语言选择和代码模板区。用React的useEffect监听题型变化,条件渲染对应的字段组。动态增加选项用了useFieldArray,点"添加选项"自动插入新输入框,点删除移除。
下午开始前后端联调。列表页接上/api/questions接口,分页用page和limit参数,筛选条件拼到query string里。添加题目表单提交时,把数据组装成接口要求的格式(选择题要把选项拼成数组,判断题存true/false字符串),POST到/api/questions,成功后刷新列表。
联调时发现一个小问题:后端返回的时间字段是ISO字符串,前端直接显示太长,加了个dayjs格式化,只显示YYYY-MM-DD。还有一个跨域的小插曲,前端跑在5173端口,后端在3000,配了个cors中间件搞定。
明天写组卷和刷题模式。刷题要记录答题历史和正确率,估计要在前端维护一个状态对象,每次答题后更新,等后端用户表建好再同步。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)