{
}

// fig.2 — 关于这个项目,问点别的
问关于「单词小程序」的细节 —— 技术选型 / 踩坑 / 部署。
试试下面的问题,或直接输入。
基于 uni-app + Vue 3 + TypeScript 打造的多端单词学习应用,主打 H5 与 微信小程序, 覆盖背词、复习、闯关、语法、听力、音标、阅读等全方位英语学习场景。
演示模式登录:openid 固定为
dev_openid,进入登录页直接点「登录」即可。📌 这是 README 的「在线版」:所有截图均托管在
minio.zxbdwy.online,可在任何脱离仓库的场景(社区、知乎、博客、PR 描述等)直接渲染,本地 README 见README.md。
@uni-helper/vite-plugin-uni-pages 文件路由 + @wot-ui/router 运行时导航@uni-helper/vite-plugin-uni-layouts 布局系统(默认布局 + 自定义 TabBar)i-carbon-* 图标集temp 的状态不落地)@alova/adapter-uniapp,由 OpenAPI 生成 apiDefinitions.ts,业务模块手写于 src/api/modulesuni-echarts# 开发
pnpm dev # H5
pnpm dev:mp-weixin # 微信小程序
pnpm dev:h5:staging # 指定 staging 环境
# 构建
pnpm build:h5
pnpm build:mp-weixin
# 质量
pnpm type-check
pnpm lint
pnpm lint:fix
# API 生成
pnpm alova-gen # 重新生成 src/api/apiDefinitions.ts
下方所有截图均自动取自 Dev 在线环境 https://project.zxbdwy.online/word-miniprogram/。
| 登录页 | 首页(TabBar) |
|---|---|
![]() | ![]() |
演示模式下统一使用 dev_openid 一键登录,H5 不再依赖微信授权。 | 顶部问候、累计学习天数与当前教材进度(图为「北师大版高中必修一」共 226 词),下方聚合「学单词 / 去复习 / 练习模块 / 分级阅读 / 错题本」常用入口。 |
| 应用中心 | 学习计划 | 我的 |
|---|---|---|
![]() | ![]() | ![]() |
| 把全部能力按「基础应用 5 项 / 学习应用 3 项 / 英语选义 1 项」三类聚合,类似桌面工作台。 | 展示当前教材封面与整体掌握进度,今日任务 20 新词 / 80 复习 / 100 总计,一键「开始学习」。 | 用户信息、词汇量测试、学检报告、积分与订单中心、AI 1 对 1 教练等账户与服务入口。 |
| 选择教材 | 学习中 | 单词搜索 |
|---|---|---|
![]() | ![]() | ![]() |
| 教材列表(新东方 BEC 2825 词、北师大版高中必修/选修等),带封面、词数、进度,支持名称搜索。 | 当前教材单词列表(含美/英音标与释义),可按「全部 / 生词 / 掌握」分组,右上「遮盖」可隐藏释义,底部直达「专项练习 / 词王挑战」。 | 单词/释义搜索,命中后展示音标、词性、释义并标注所属教材。 |
| 设置 |
|---|
![]() |
| 极简设置页,目前仅提供「退出登录」操作。 |
| 词王挑战 | 学习报告 | 中文选词练习 | 复习中心 |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| 「学→读→选→拆分→拼读→拼写」六步成词,集成单词助记、词根拆解、实用口语例句,底部可加入生词或标记已掌握。 | 挑战结束后的学习报告:完成进度 8/8、正确率 75%、用时 4'00",逐词展示掌握情况。 | 听发音 + 看中文释义,四选一选出对应英文单词,1/10 进度计数。 | 按教材展示生词复习列表(图为空状态:暂无生词),提供「专项练习 / 开始复习」入口。 |
| 闯关游戏 | 分级阅读 | 英语选义 |
|---|---|---|
![]() | ![]() | ![]() |
| Word King 关卡地图:拼写挑战 / 听音识词 / 综合闯关 / 速记风暴 / 终极词王。 | 入门 / 初级 / 中级 / 高级 四档分级文章,含词数、阅读时长与生词数标注。 | 「英语选义」专项:根据英文挑选正确中文释义,配置题目数 / 选项数 / 预计时长。 |
| 语法学习 | 听力学习 | 抗遗忘 |
|---|---|---|
![]() | ![]() | ![]() |
| 时态 / 词性 / 句型 / 从句四大模块,按知识点维度展示掌握度百分比。 | 今日听力数据卡片 + 单词听力 / 听音选词 / 单词听写 三种练习模式。 | 基于艾宾浩斯曲线的复习时间线(今天 / 1天后 / 2天后 / 4天后 / 7天后 / 15天后)。 |
| 音标学习 | 自建单词 |
|---|---|
![]() | ![]() |
| 48 个国际音标,元音 / 辅音 双 Tab,附示例词;点击播放标准发音。 | 拍照 / 相册上传识别生词,或手动维护自建词库(含音标与释义)。 |
pages.config.ts:通过 vite-plugin-uni-pages 生成 virtual:uni-pages,再由 src/router/index.ts 桥接到 @wot-ui/router。pages.config.ts 中 tabBar.custom = true,底部 Tab 由 src/layouts/tabbar.vue 与 src/customize-tab-bar/index.js 接管。src/App.ku.vue 统一接入 wd-config-provider、ku-root-view、GlobalLoading / GlobalToast / GlobalMessage,页面无需自挂全局反馈组件。src/store/manualThemeStore.ts + src/composables/useManualTheme.ts + Wot Provider 共同驱动亮暗模式、跟随系统、导航栏颜色同步。更多细节请参考 CLAUDE.md。
src/
├── App.ku.vue # 全局根:Wot Provider + 全局反馈 + 隐私弹窗
├── api/
│ ├── core/ # alova 实例 / 统一 handlers / loading middleware
│ ├── apiDefinitions.ts # 由 pnpm alova-gen 生成(勿手改)
│ ├── modules/ # 业务 API 手写模块
│ └── mock/ # mock adapter & 数据
├── components/ # 自动注册的通用组件
├── business/ # 自动注册的业务组件
├── composables/ # 自动导入的组合式函数(含 useManualTheme)
├── customize-tab-bar/ # 微信小程序自定义 tabBar
├── layouts/ # default.vue / tabbar.vue
├── pages/ # 文件路由源(见下方页面列表)
├── router/ # virtual:uni-pages -> @wot-ui/router 桥接
├── store/ # Pinia(默认持久化)
└── main.ts # 应用入口
| 路径 | 平台 | 说明 |
|---|---|---|
pages/login/index | H5 / 微信 | 登录入口(H5 走手动 openid) |
pages/index/index | H5 / 微信 | TabBar - 首页 |
pages/app/index | H5 / 微信 | TabBar - 应用中心 |
pages/plan/index | H5 / 微信 | TabBar - 学习计划 |
pages/mine/index | H5 / 微信 | TabBar - 我的 |
wd- 前缀)组件,复杂样式再写 SCSS。GlobalToast / GlobalMessage / GlobalLoading,不要直接调用 uni.showToast。feat/fix/chore(模块): 任务描述 规范,不带任何署名。src/api/apiDefinitions.ts 是生成文件,需要变更时跑 pnpm alova-gen,不要直接修改。core/instance.ts 实例 + core/handlers.ts 401/403 跳登录 + core/middleware.ts loading + modules/* 业务封装;OpenAPI 生成产物为 apiDefinitions.ts,不要手改。uni-app API / Wot 反馈 / Alova hooks / src/composables / src/store / src/utils / src/api 全部自动注入;看到"没 import 就能用"的符号不要急着补 import。pages/book-select/index |
| H5 / 微信 |
| 选择教材 |
pages/learn/index | H5 / 微信 | 学习主页 |
pages/learn/challenge/index | H5 / 微信 | 词王挑战六步法 |
pages/learn/challenge/completion | H5 / 微信 | 挑战学习报告 |
pages/learn/practice/index | H5 / 微信 | 中文选词专项练习 |
pages/review/index | H5 / 微信 | 复习中心 |
pages/search/index | H5 / 微信 | 单词搜索 |
pages/settings/index | H5 / 微信 | 设置 / 退出登录 |
pages/game/index | H5 | 闯关游戏 Word King |
pages/reading/index | H5 | 分级阅读 |
pages/feature/english-select/index | H5 | 英语选义 |
pages/feature/grammar/index | H5 | 语法学习 |
pages/feature/listening/index | H5 | 听力学习 |
pages/feature/memory/index | H5 | 抗遗忘(艾宾浩斯曲线) |
pages/feature/phonetic/index | H5 | 音标学习 |
pages/feature/self-word/index | H5 | 自建单词(拍照识词) |