作品十三:学习打卡小程序
做一个打卡小程序,可以学习小程序的日历组件 、数据可视化等功能。

28%

28%

44%
这个打卡小程序要实现习惯打卡功能
•
用户可以创建打卡项目 ( 比如每天学习 、每天运动),设置打卡目标(连续打卡天数)。
•
每天可以打卡一次,打卡后显示打卡成功 。首页显示所有打卡项目和打卡状态 。
◦
日历视图显示打卡历史,打卡的日期标记为绿色 。统计数据显示总打卡天数 、连续打卡天数 、完成率等。
💚
使用小程序原生开发,数据存储使用本地存储
日历组件可以使用第三方组件库( 如 Vant Weapp)或自己实现。
开发步骤
1)开发的第一步是设计数据结构 。告诉 AI:
代码块
Markdown
我要开发一个打卡小程序,请帮我设计数据结构。
打卡项目 :
- id
- name( 项目名称,如"每天学习")
- target( 目标天数)
- created_at(创建时间)
打卡记录:
- id
- project_id( 关联的项目)
- date(打卡日期,格式 YYYY-MM-DD)
- note(打卡备注,可选)
- created_at(打卡时间)
请给出数据结构和存储方案。
AI 会帮你设计合理的数据结构,并说明如何存储在本地。
2)创建项目列表页告诉 AI:
代码块
Plain Text
创建首页( pages/index/index),显示打卡项目列表:
每个项目卡片显示:
- 项目名称
- 今日是否已打卡( 已打卡显示绿色勾,未打卡显示灰色圆圈)
- 连续打卡天数
- 总打卡天数
- 进度条( 已打卡天数/目标天数)
底部有"添加项目 "按钮。
点击项目卡片进入项目详情页。
点击打卡按钮进行打卡。
这个提示词说明了首页的布局和交互 。AI 会生成完整的页面代码。
3) 实现打卡功能告诉 AI:
代码块
Plain Text
实现打卡功能:
1. 检查今天是否已打卡
2. 如果未打卡,创建打卡记录
3. 保存到本地存储
4. 显示打卡成功提示
5. 刷新页面数据
打卡时可以添加备注( 可选)。
打卡功能要防止重复打卡,所以要先检查今天是否已打卡。
4)创建项目详情页告诉 AI:
代码块
Markdown
5) 实现统计功能告诉 AI:
代码块
Plain Text
实现统计功能:
1. 总打卡天数:该项目的所有打卡记录数
2. 连续打卡天数:从今天往前数,连续打卡的天数
3. 完成率:已打卡天数 / 目标天数
4. 最长连续打卡:历史上最长的连续打卡天数
在项目详情页显示这些统计数据。
连续打卡天数的计算比较复杂,要从今天往前遍历,检查每一天是否有打卡记录,直到遇到没有打卡的日期 。AI 会帮你实现这个算法。
6) 实现日历组件告诉 AI:
代码块
Plain Text
实现日历组件:
日历组件的实现比较复杂,但 AI 可以帮你搞定 。如果觉得自己实现太麻烦,也可以使用第三方组件库, 比如 Vant Weapp。
开发技巧
在开发打卡小程序时,有几个技巧需要注意 。
•
首先是日期处理,JavaScript 的日期处理比较复杂,可以让 AI帮你封装一些工具函数, 比如获取当月天数 、判断是否是今天 、计算两个日期的天数差等。
•
其次是连续打卡天数的计算 。要从今天往前遍历,检查每一天是否有打卡记录,直到遇到没有打卡的日期。可以让 AI 帮你实现这个算法, 它会考虑各种边界情况。
•
另外, 日历组件的实现比较复杂,如果觉得自己实现太麻烦,可以使用第三方组件库 。Vant Weapp 是一个很好的小程序 UI 组件库,提供了日历组件 。可以让 AI 帮你集成 Vant Weapp ,使用它提供的日历组件。
•
最后,打卡数据可能会越来越多,要注意性能优化 。可以只加载最近 3 个月的数据,更早的数据按需加载,避免一次性加载太多数据导致页面卡顿。
扩展思路
基础版完成后,可以继续扩展功能 。
比如添加打卡提醒,每天定时提醒用户打卡;
实现打卡分享,生成打卡海报分享到朋友圈;
添加打卡排行榜,和好友比拼谁坚持得更久;
实现打卡奖励,连续打卡获得勋章;
支持数据导出,导出打卡记录;集成云同步,使用微信云开发实现多设备同步。