乐于分享
好东西不私藏

实战 2:用 AI 做一个待办清单工具

实战 2:用 AI 做一个待办清单工具

个人介绍网页主要训练“页面展示”。待办清单工具开始训练“用户交互”。

这个项目很适合小白,因为它的功能足够简单,但已经包含一个小应用的核心结构:输入、保存、显示、修改状态、删除

你会看到一个重要变化:代码不再只是把内容展示出来,而是要根据用户操作改变页面。

这篇文章带你用 AI 做一个单文件待办清单工具。重点不是一次做得多完整,而是理解交互功能如何一步步搭起来。

一、这次实战要做什么

本次目标是做一个网页端待办清单工具。

第一版功能:

  • 输入待办事项。

  • 点击按钮新增到列表。

  • 空内容不能新增。

  • 点击事项切换完成状态。

  • 点击删除按钮删除事项。

技术要求:

  • 只使用 HTML、CSS、JavaScript。

  • 所有代码放在一个 HTML 文件里。

  • 不使用第三方库。

  • 不需要后端和数据库。

  • 可以直接用浏览器打开。

暂时不做:

  • 登录注册。

  • 多人协作。

  • 分类标签。

  • 截止日期。

  • 云同步。

  • 拖拽排序。

第一版只练习最基础的交互。

二、先理解待办工具的数据

待办清单看起来是页面,但核心其实是数据。

每条待办事项至少包含:

字段说明示例
id唯一标识,用来区分每条事项1
text待办内容买牛奶
completed是否完成true 或 false

对小白来说,可以先这样理解:

页面上看到的列表,是根据一组待办数据生成的。用户新增、完成、删除,其实都是在修改这组数据。数据变了,页面再重新显示。

这个思路非常重要。

后面很多应用都是类似逻辑:先有数据,再根据数据渲染页面。

三、先让 AI 拆功能流程

不要直接写代码。

先让 AI 拆流程:

我是 0 基础编程小白。我想做一个网页端待办清单工具。请先不要写代码。请帮我拆解用户操作流程。第一版功能:1. 输入待办事项。2. 点击按钮新增到列表。3. 空内容不能新增。4. 点击事项切换完成状态。5. 点击删除按钮删除事项。请输出:1. 用户会做哪些动作。2. 每个动作会改变什么数据。3. 页面应该发生什么变化。4. 每个功能的完成标准。

你要确认 AI 是否理解:

  • 输入内容来自输入框。

  • 新增后要出现在列表。

  • 完成状态要有视觉变化。

  • 删除只删除对应项。

流程确认后再让它写代码。

四、生成第一版代码的提示词

下面是可复制提示词:

我是 0 基础编程小白。请帮我生成一个单文件待办清单工具。功能要求:1. 输入框用于输入待办事项。2. 点击“添加”按钮后,把内容加入列表。3. 如果输入为空,不能添加,并显示提示。4. 点击某条待办事项,可以切换完成和未完成状态。5. 每条事项右侧有删除按钮,点击后删除对应事项。技术要求:1. 只使用 HTML、CSS、JavaScript。2. 所有代码放在一个 HTML 文件里。3. 不使用任何第三方库。4. 保存为 index.html 后可以直接用浏览器打开。代码要求:1. 用中文注释标出主要逻辑。2. 变量名尽量清晰。3. 不要实现我没有要求的复杂功能。输出要求:1. 先复述你理解的需求。2. 再给完整代码。3. 最后说明如何运行和测试。4. 告诉我如果要修改标题、按钮文字、提示文案,应该改哪里。

这段提示词会让 AI 生成一个最小可运行版本。

先不要要求本地保存。等基础功能稳定后再加。

五、运行后先检查 5 个核心功能

保存为 index.html 后,用浏览器打开。

测试清单:

测试操作预期结果
新增输入“买牛奶”,点击添加列表出现“买牛奶”
空输入不输入内容,点击添加不新增,并出现提示
多条新增连续添加 3 条列表显示 3 条
完成状态点击某条事项文字该事项显示完成状态
删除点击某条事项删除按钮只删除对应事项

如果这些都通过,第一版就合格。

如果某项失败,不要让 AI 大改。只针对失败项提问。

例如:

新增功能正常,但删除功能有问题。点击删除按钮后,所有事项都消失了。请只修复删除逻辑,不要修改样式和新增逻辑。

六、让 AI 解释核心代码

功能能运行后,让 AI 讲解代码。

提示词:

我是 0 基础编程小白。请讲解这个待办清单代码。重点解释:1. todos 数组保存了什么。2. 添加按钮点击后发生什么。3. 为什么新增后列表会更新。4. 点击事项为什么能切换完成状态。5. 删除按钮如何删除对应事项。要求:1. 用小白能懂的话讲。2. 用箭头画出数据流。3. 标出可以安全修改的文案和样式。4. 标出不要乱改的核心逻辑。

你至少要理解一条数据流:

输入框文字  ↓点击添加按钮  ↓生成一条待办数据  ↓放进 todos 数组  ↓重新渲染列表  ↓页面显示新事项

能理解这条线,就掌握了待办清单的核心。

七、第一次迭代:增加本地保存

基础功能稳定后,可以加本地保存。

本地保存的意思是:刷新页面后,待办事项仍然存在。

提示词:

请在当前待办清单工具中增加本地保存功能。目标:刷新页面后,已添加的待办事项和完成状态仍然保留。技术要求:1. 使用浏览器 localStorage。2. 不使用后端和数据库。3. 不新增第三方库。修改限制:1. 不要改变现有页面结构。2. 不要修改新增、完成、删除的交互方式。3. 只在必要位置增加保存和读取逻辑。输出要求:1. 先说明需要修改哪几处。2. 再给最小修改方案。3. 说明 localStorage 在这里保存了什么。4. 给出测试步骤。

测试:

  1. 添加两条待办。

  2. 标记其中一条为完成。

  3. 刷新页面。

  4. 检查两条是否还在,完成状态是否保留。

八、第二次迭代:增加筛选

如果本地保存稳定,可以继续加筛选。

筛选功能包括:

  • 全部。

  • 未完成。

  • 已完成。

提示词:

请给待办清单增加筛选功能。功能要求:1. 有三个筛选按钮:全部、未完成、已完成。2. 点击“全部”显示所有事项。3. 点击“未完成”只显示未完成事项。4. 点击“已完成”只显示已完成事项。限制:1. 不要修改已有数据结构,除非确实必要。2. 不要影响新增、删除、完成状态切换。3. 不要新增第三方库。4. 先给修改计划,再给代码。完成后给测试步骤。

注意:筛选只是改变显示,不应该删除原始数据。

如果点击“未完成”后已完成事项消失,这是正常显示;切回“全部”后它应该还在。

九、常见 bug 和排查方法

待办清单常见问题:

问题可能原因
点击添加没反应按钮事件没绑定,或选择器写错
空内容也能新增没有做空值校验
删除错了事项id 或索引处理有误
完成状态不显示CSS 类名没加上,或渲染逻辑没处理
刷新后数据丢失localStorage 没保存或没读取
筛选后数据不见了筛选时错误修改了原始数组

排查提示词:

我的待办清单出现 bug。现象:【描述具体问题】操作步骤:【写出触发步骤】预期结果:【应该发生什么】实际结果:【实际发生什么】相关代码:【粘贴相关代码】请先判断问题属于新增、渲染、删除、完成状态、本地保存还是筛选。然后给最小修复方案。不要修改无关功能。

先分类,再修复,效率更高。

十、这次实战的验收清单

基础验收:

1. 页面能直接用浏览器打开。2. 可以新增待办事项。3. 空输入不能新增。4. 可以切换完成状态。5. 可以删除指定事项。6. 每次操作后列表显示正确。

进阶验收:

1. 刷新页面后数据不丢失。2. 完成状态刷新后仍然保留。3. 可以按全部、未完成、已完成筛选。4. 筛选不会删除原始数据。

学习验收:

1. 你能说出 todos 数组负责什么。2. 你能说出新增、完成、删除分别改了什么数据。3. 你能说出 localStorage 的作用。4. 你知道哪些文案和样式可以安全修改。

不要跳过学习验收。实战的目标不是只拿到代码,而是能理解和继续改。

十一、下一步可以怎么扩展

待办清单可以继续扩展:

  • 添加任务创建时间。

  • 添加任务优先级。

  • 添加清空已完成。

  • 添加搜索。

  • 添加分类标签。

  • 添加截止日期。

  • 适配手机。

推荐顺序:

  1. 先加创建时间。

  2. 再加清空已完成。

  3. 再加搜索。

  4. 最后考虑分类和截止日期。

每次只加一个功能,并要求 AI 说明数据结构是否需要变化。

这篇文章你需要记住什么

待办清单是小白理解交互逻辑的第一个好项目。

它让你看到:用户输入会变成数据,数据保存到数组里,页面根据数据重新渲染。新增、完成、删除,本质上都是在改变数据。

完成这个实战后,你就不只是会做静态页面,而是开始理解“小工具”的基本工作方式。