组合式函数 (Composables)
2个 Composable,TypeScript 实现 | 文件位于
web/src/composables/
架构概览
composables/
├── useCharFilter.ts ← 汉字过滤(含测试)
└── useReviewScheduler.ts ← 复习调度(艾宾浩斯遗忘曲线,含测试)useCharFilter.ts — 汉字过滤
文件: web/src/composables/useCharFilter.ts | 测试: useCharFilter.test.ts
职责
- 按分类、拼音、笔画数等多维度过滤汉字列表
- 结合 characterStore 使用
useReviewScheduler.ts — 复习调度
文件: web/src/composables/useReviewScheduler.ts | 测试: useReviewScheduler.test.ts
职责
- 艾宾浩斯遗忘曲线复习调度
- 复习间隔:1天 → 3天 → 7天 → 15天 → 30天
- 阶段计算和下一复习日期推算
核心函数
| 函数 | 说明 |
|---|---|
REVIEW_INTERVALS | 复习间隔常量数组 |
calcNextReviewDate(stage, baseDate?) | 计算下一复习日期 |
isReviewDue(info, todayStr) | 判断是否到期 |
computeNextStage(currentStage, score) | 根据分数计算下一阶段 |
复习阶段流转
阶段0 (新学) → 阶段1 (1天后) → 阶段2 (3天后) → 阶段3 (7天后) → 阶段4 (15天后) → 阶段5 (30天后)- 分数 ≥ 60:阶段前进
- 分数 < 60:阶段回退到0