|
1 |
| -# gre2weeks |
| 1 | +# Vue单词助手 |
2 | 2 |
|
3 |
| -## Project setup |
4 |
| -``` |
5 |
| -npm install |
6 |
| -``` |
| 3 | +一款用Vue写的高效率在线背单词Web App,经实践两周即可背完GRE机经词。 |
7 | 4 |
|
8 |
| -### Compiles and hot-reloads for development |
9 |
| -``` |
10 |
| -npm run serve |
11 |
| -``` |
| 5 | +功能理论依据是艾宾浩斯记忆周期,同时参考了杨鹏的《17天搞定GRE单词》,以及不少同学和自己使用Excel背单词的经验。 |
12 | 6 |
|
13 |
| -### Compiles and minifies for production |
14 |
| -``` |
15 |
| -npm run build |
16 |
| -``` |
| 7 | +本项目尤其适合做为Excel背单词法的替代方案,尤其适合准备GRE这种考试,需要短期记忆大量单词的同学。 |
17 | 8 |
|
18 |
| -### Run your tests |
19 |
| -``` |
20 |
| -npm run test |
21 |
| -``` |
| 9 | +>因为是备考GRE时在空余时间写的,项目一些地方的代码复用和算法写的比较糟糕,有很大的提升空间。 |
| 10 | +
|
| 11 | +[点此进入本项目的demo页面(甚至可以直接在这背GRE单词)](超链接地址 "https://gre.lukerr.com") |
| 12 | + |
| 13 | +如果觉得本项目有帮助记得给个star~ |
| 14 | + |
| 15 | +## 项目特点 |
| 16 | + |
| 17 | +1. 使用Vue.js做为整体框架 |
| 18 | +2. 使用HTML5的indexDB做为本地数据库 |
| 19 | +3. 异步api全部使用Promise封装 |
| 20 | +4. 前端页面很简单,主要的时间花在了api上 |
| 21 | +5. 基于多方面考虑做了用户系统,不同用户有独立的学习进度 |
| 22 | + |
| 23 | +因为项目使用了indexDB这种浏览器本地数据库来储存数据, |
| 24 | +不同机器间学习数据不互通。但又因为在本地就有用户系统, |
| 25 | +之后能很方便的把数据接上云端。 |
| 26 | + |
| 27 | +之所以使用indexDB是因为学习进度需要被长久保存, |
| 28 | +在Web端能满足需求的只有localStorage和indexDB。 |
| 29 | +但在这种应用使用localStorage太不优雅了,所以你懂的。 |
| 30 | + |
| 31 | +## 技术栈 |
| 32 | + |
| 33 | +Vue + Vuex + Vue-router + indexDB |
| 34 | + |
| 35 | +## 代码说明 |
| 36 | + |
| 37 | +本项目核心是两个封装好的api,位于```/src/api```目录下,剩余的都是在一般的vue项目里很常见的代码,花一点时间就能看懂故不多介绍。 |
| 38 | + |
| 39 | +### /src/api/cache.js |
| 40 | +- 操作本地数据库indexDB的api,类似于MVC模型中的M和V |
| 41 | +- 因为indexDB是异步读写,所以每个api都用到了Promise |
| 42 | +- 数据库设计了三个表,每个表的数据结构在代码内有详细介绍。 |
| 43 | + - user表,储存用户基本信息,比如用户名和密码。 |
| 44 | + - learned表,储存用户对每个单词的熟悉度,记忆周期等数据 |
| 45 | + - progress表,储存用户对每个list的学习进度等信息(这个表好像有点鸡肋,但一时半会也想不出更好的能满足需求的方案,相当于为了查询性能做了数据储存的冗余的操作) |
| 46 | + |
| 47 | +### /src/api/word.js |
| 48 | + - 应用层api,类似于MVC模型的C |
| 49 | + - 包含诸如"获取下一批要复习的单词"这样的api |
| 50 | + - 艾宾浩斯记忆周期和《17天搞定GRE单词》中的方法在这里体现 |
| 51 | + |
| 52 | +## 本地安装与使用 |
22 | 53 |
|
23 |
| -### Lints and fixes files |
24 |
| -``` |
25 |
| -npm run lint |
26 | 54 | ```
|
| 55 | +# 下载项目到本地 |
| 56 | +git clone https://github.com/chenstarx/vue-vocabulary |
27 | 57 |
|
28 |
| -### Customize configuration |
29 |
| -See [Configuration Reference](https://cli.vuejs.org/config/). |
| 58 | +# 进入项目文件夹 |
| 59 | +cd vue-vocabulary |
| 60 | +
|
| 61 | +# 安装npm依赖 |
| 62 | +npm install |
| 63 | +
|
| 64 | +# 开发模式运行 |
| 65 | +npm run serve |
| 66 | +``` |
0 commit comments