一、测验链路不能只计算一个分数知识测验至少包含题目加载、单选、立即判定、答案解释、下一题、结果汇总、历史最高分和重新答题。用户答错时如果只显示红色叉号没有正确选项和原因测验就失去了学习价值。应用按模块组织题库。分类页只在当前模块存在题目时显示测验入口答题页管理本轮临时状态结果服务保存已经完成的轮次结果页再展示百分比和历史最高分。二、QuizQuestion 把答案与解释放在同一对象每道题有稳定 id、所属模块、题干、四个选项、正确标签和解释。正确答案不依赖选项数组下标调整展示顺序时仍能准确判定。export interface QuizOption { label: string text: string } export interface QuizQuestion { id: string moduleId: string question: string options: QuizOption[] correctLabel: string explanation: string } export function quizByModule(moduleId: string): QuizQuestion[] { return QUIZ_BANK.filter(question question.moduleId moduleId) }字段作用约束id列表键与题目身份模块内唯一moduleId按学习模块取题必须对应模块options渲染可选答案标签不可重复correctLabel判定正确项必须存在于选项中explanation错因与知识点不能为空三、答题页是一组明确的临时状态本轮题目、题号、已选标签、是否已回答、当前得分都保存在页面状态中。离开测验后无需把这些中间字段长期持久化。State questions: QuizQuestion[] [] State currentIndex: number 0 State selectedLabel: string State answered: boolean false State score: number 0 State moduleId: string aboutToAppear(): void { const params router.getParams() as QuizParams this.moduleId params?.moduleId ?? this.questions quizByModule(this.moduleId) }题库为空时页面显示“该模块暂无测验题目”不会继续访问questions[0]。模块参数缺失也会得到空题库的安全结果。这些题内字段都属于组件本地状态生命周期和刷新规则可对照华为官方 State 状态管理说明。四、一次点击只允许完成一次判定选项点击首先检查answered。首次点击写入选择、锁定本题并在正确时增加得分之后点击其他选项不再改变结果。.onClick(() { if (!this.answered) { this.selectedLabel option.label this.answered true if (option.label this.questions[this.currentIndex].correctLabel) { this.score } } })判定后正确选项始终显示绿色若用户选错所选项显示红色同时正确项仍可见。解释文本紧跟在选项后面用户无需等到全部答完才知道错因。五、下一题动作重置题内状态点击“下一题”只推进索引并重置选择与锁定状态最后一题则用replaceUrl进入结果页避免返回后落到已经回答完的旧题状态。private goNext(): void { if (this.currentIndex this.questions.length - 1) { this.currentIndex this.selectedLabel this.answered false return } router.replaceUrl({ url: Routes.QUIZ_RESULT, params: { moduleId: this.moduleId, score: this.score, total: this.questions.length } }) }这里没有重置总分因为它属于整轮测验只重置当前题的临时字段。状态层级清楚后不会出现答对上一题后下一题自动选中相同标签的串题。六、结果服务保存完整轮次而非单个最高分结果记录包含模块、得分、总题数和时间。历史最高分通过遍历同模块记录计算完成模块数通过 Set 去重。export interface QuizResult { moduleId: string score: number total: number ts: number } static submitResult(moduleId: string, score: number, total: number): void { const results: QuizResult[] QuizService.allResults() results.push({ moduleId, score, total, ts: Date.now() }) AppStorage.setOrCreatestring(quiz_results, JSON.stringify(results)) } static bestScore(moduleId: string): number { return QuizService.allResults() .filter(result result.moduleId moduleId) .reduce((best, result) Math.max(best, result.score), 0) }保留完整轮次能继续扩展正确率趋势、最近一次成绩和练习次数。只保存最高分虽然更省空间却会丢失学习过程。七、结果页用 saved 阻止生命周期重复提交结果页aboutToAppear()可能因页面重新显示而再次执行。页面用本地saved守卫确保同一个组件实例只提交一次。State saved: boolean false aboutToAppear(): void { const params router.getParams() as QuizResultParams this.moduleId params.moduleId this.score params.score this.total params.total if (!this.saved) { QuizService.submitResult(this.moduleId, this.score, this.total) this.saved true } }这能拦住普通的重复显示但它不是跨进程幂等。若未来结果需要上传服务端应增加本轮attemptId由持久化层或服务端拒绝重复提交。八、结果反馈与失败边界结果页按正确率选择绿色、橙色或红色并展示分数、百分比、鼓励文案、历史最高、重新答题和返回模块。边界页面处理数据处理题库为空显示无题提示不生成结果题目总数为 0百分比返回 0不除以 0连续点击选项锁定首次答案分数最多加 1结果 JSON 损坏返回空数组最高分降级为 0再答一次替换为新答题页新增一轮结果返回模块回到课程上下文历史结果保留现有运行界面显示 1/8、13%、分段反馈、历史最高和两个后续动作。验收还应覆盖一次全对、一次全错、重复点击选项、最后一题进入结果页、重新答题和返回模块。题库自身也要做静态一致性检查题目 id 不重复模块 id 有效选项标签不重复correctLabel必须存在解释文本不能为空。运行时再检查题号与进度条同步、回答后禁止二次加分、下一题清空题内状态、最后一题只进入一次结果页。重新答题应产生独立轮次但页面恢复或重复显示结果页不能在同一轮里插入多条记录。九、错题反馈决定测验是否真正服务学习题库模型将正确答案和解释与题目放在一起答题页用锁定状态保证一次判定结果服务保留完整轮次结果页再提供重试与回到课程的出口。这条链路让“答错”成为可理解、可继续的学习状态而不是一个没有上下文的低分数字。进一步扩展错题本时不必复制整道题到用户数据只保存题目 id、选择标签、时间和题库版本。展示时再用 id 回读当前题目题库版本变化导致 id 失效时将记录标记为已下线并保留历史成绩。这样既能追踪易错知识点也不会因为题干修订把旧答案错误地解释成新题结果。成绩展示还应保留总题数因为不同模块的题量并不相同单独比较得分没有意义。排行榜或学习建议应优先使用正确率并在题量过少时避免给出过度结论历史最高分也应同时显示对应总题数防止题库扩容后把旧的 8/8 与新的 8/12 误认为同一水平。
企业数字化 ERP 产品动态
相关推荐
TMS320C665x DSP系统时钟、复位、EDMA3与中断配置实战指南 1. 项目概述与核心价值在嵌入式DSP系统开发中,尤其是面对像TI TMS320C665x系列这样的高性能多核处理器,系统时钟、复位与中断控制器(CRI)的配置与理解,往往是决定项目成败的“临门一脚”。很多工程师在项目初期&#x… · 2026/10/25 1:08:45
如何为pi-gpio贡献代码?参与开源项目的完整流程 如何为pi-gpio贡献代码?参与开源项目的完整流程 【免费下载链接】pi-gpio A simple node.js-based GPIO helper for the Raspberry Pi 项目地址: https://gitcode.com/gh_mirrors/pi/pi-gpio
pi-gpio是一个简单的基于node.js的Raspberry Pi GPIO辅助库&#… · 2026/11/8 20:51:54
SDR++:重新定义频谱探索的极简主义哲学 SDR:重新定义频谱探索的极简主义哲学 【免费下载链接】SDRPlusPlus Cross-Platform SDR Software 项目地址: https://gitcode.com/GitHub_Trending/sd/SDRPlusPlus
在无线电频谱监测的世界里,传统软件定义无线电工具往往让用户陷入复杂的菜单迷宫… · 2026/11/6 11:17:04
番禺 电工证代办年审报考条件与考试时间 番禺电工证代办年审,学历不高怕报不上名?良心建议在这里 你是不是也这样,明明想考个电工证,结果一看报名条件,心里就打鼓?学历不高怕报不上名?别急,咱今天就来聊聊这个 番禺电工证代办年审 的事儿,给你几个 良心建议… · 2026/11/9 12:04:59
电工证容易考不?实操考试心里没底怕挂科?费用也得算清楚 电工证容易考不?实操考试心里没底怕挂科?费用也得算清楚 你是不是正准备考电工证,心里却打鼓,怕实操考试不过?其实很多人都是这样,特别是第一次接触特种作业证的,对流程、内容、费用都不太清楚,一听说要考试、要实操,就担心自己会挂科,还担心… · 2026/11/9 12:04:59
考高压电工证要毕业吗怎么报名?实操考试心理没底别慌,按这个流程走 考高压电工证要毕业吗怎么报名?实操考试心理没底别慌,按这个流程走 实操考试心里没底怕挂科?考高压电工证要毕业吗?怎么报名?这些问题你不是一个人在想。平顶山的公路工程从业者、刚入行的新人,甚至是想转行的老电工,都会面临同样的困惑。其实,只要搞… · 2026/11/9 12:04:59
电工证每月考试时间你知道吗?真实经历告诉你怎么抢考位 电工证每月考试时间你知道吗?真实经历告诉你怎么抢考位 最近找工作四处碰壁,就是卡在没特种作业证,尤其是电工证,这玩意儿直接关系到能不能进工地、上岗干活。我一个洛阳应届工程类毕业生,就是吃了没提前准备的亏,现在来跟你们分享我那段真实经历,看看… · 2026/11/9 12:04:59
沈北电工证怎么考取的保姆级教程:避免被坑的全流程攻略 沈北电工证怎么考取的保姆级教程:避免被坑的全流程攻略 你是不是也这样,看到网上各种电工证报考信息,心里直打鼓,不知道该去哪报名,怕被中介骗钱?别急,这篇【沈北电工证怎么考取的保姆级教程】就是为你量身定制的,从报名到拿证,每一步都讲得明明白白… · 2026/11/9 12:04:59
电工证要户口本吗?郑州报考避坑指南:实操考试心里没底怕挂科 电工证要户口本吗?郑州报考避坑指南:实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。尤其是刚入行的电工小白,面对电工证考试,不仅担心流程复杂,还可能被“电工证要户口本吗”这类问题搞得一头雾水。别慌,本文结合 郑州报考避坑指南… · 2026/11/9 12:03:59
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/9 2:05:04
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/9 3:11:26
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/9 5:24:17
电工证不需要考复审延期怎么办理 通过率揭秘 电工证不需要考复审延期怎么办理 通过率揭秘 不知道去哪报名怕被中介坑?电工证不需要考复审延期怎么办理?最近不少学员都在问这个问题,尤其是刚拿到证的新手,对复审流程一知半解,生怕被培训机构套路。别担心,今天咱们就来聊聊电工证复审的真相,尤其是… · 2026/11/9 0:00:54
砀山哪里考电工证的多 电工证报考别踩坑 郑州报考避坑指南 砀山哪里考电工证的多 电工证报考别踩坑 郑州报考避坑指南 工地太忙根本没时间复习考试,这几乎是所有一线施工人员的共同心声。尤其是像电工这样的特种作业,操作证不仅关系到能不能上工,还直接关系到工资高低和职业发展。可偏偏,很多人连怎么报名、去哪… · 2026/11/9 0:00:54
南方电网电工作业含金量高吗?应届生怎么考怎么干? 南方电网电工作业含金量高吗?应届生怎么考怎么干? 工地太忙根本没时间复习考试,这不是个别现象,而是很多刚毕业的工程类学生面临的现实。南方电网电工作业的证书,听起来门槛不低,但 含金量… · 2026/11/9 0:00:54
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:35
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:58
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:25:08