作品六:待办事项的APP
完成了作品集网站后,让我们来做一个功能更复杂的项目 。
在快速上手部分,我们做过一个简单的待办事项应用 ,只有最基本的添加和删除功能 。
现在,让我们做一个功能更强大的版本,学习如何处理更复杂的业务逻辑。
这个进阶版的功能要丰富得多 :
•
添加待办事项时, 除了标题,还可以设置描述 、截止日期 、优先级 、分类 。
•
查看列表时,支持按分类 、优先级 、状态筛选,还有搜索功能可以快速找到特定的待办事项 。
•
当然也支持编辑和删除 。数据用 LocalStorage 保存,刷新页面不会丢失 。
•
另外还有统计功能,显示完成率 、待办数量等。

33%

33%

33%
技术选型
💚
前端用 React + TypeScript + Vite ,状态管理用 Zustand( 一个轻量级的状态管理库, 比Redux 简单很多),样式用 Tailwind CSS, 日期处理用 date-fns ,数据存储用 LocalStorage
开发步骤
1)定义数据模型
开发的第一步是定义数据模型 。你需要明确待办事项包含哪些字段
id( 唯一标识)、title(标题)、description(描述)、category( 分类)、priority(优先级:低 、中 、高)、dueDate( 截止日期)、completed( 是否完成)、createdAt(创建时间)
把这些字段定义清楚,后面的开发就会很顺畅。
2)按功能模块开发
然后按功能模块来开发 。建议的顺序是:先实现数据存储层,封装 LocalStorage 的读写操作;再实现状态管理,用 Zustand 创建全局 store;然后实现添加功能;接着实现列表展示和筛选;最后实现搜索和统计。这样循序渐进,每完成一个模块就测试一下,确保正常工作。和 AI 对话时,可以这样说:
代码块
Plain Text
创建 Todo 数据模型和 LocalStorage 工具函数。
AI 会帮你定义数据结构和封装存储操作 。这个提示词虽然简单,但 AI 知道要做什么, 因为它会参考你的PRD 和技术设计文档。然后说:
代码块
Plain Text
使用 Zustand 创建全局状态管理,包括添加 、删除 、更新 、筛选等方法。
AI 会创建一个完整的 store ,包含所有需要的方法 。Zustand 是一个很轻量的状态管理库, 比 Redux 简单很多,但功能足够强大。接着说:
代码块
Plain Text
创建 AddTodo 组件,包含表单输入和验证。
AI 会实现添加功能的界面和逻辑,包括输入框 、下拉选择 、 日期选择器等 。每完成一个功能,就测试一下,确保正常工作。
关键技术点
这个项目有几个关键的技术点需要注意 。首先是状态管理, 因为功能比较多,用 Zustand 来管理全局状态会方便很多 。你可以让 AI 帮你创建一个 store ,包含添加 、删除 、更新 、筛选等方法。
筛选功能要支持多条件筛选, 比如同时按分类和优先级筛选 。搜索功能要支持模糊搜索,在标题和描述中查找关键词 。这些逻辑都可以让 AI 帮你实现,你只需要告诉它具体的需求就行。
扩展思路
基础版完成后,还可以继续扩展 。
比如添加标签功能,让待办事项可以打多个标签;
支持子任务,一个大任务可以分解成多个小任务;
添加提醒功能,到期前自动提醒;
支持数据导出为 CSV;甚至可以用 Firebase实现云端同步。
