实验 09 · 35 分钟 · 入门
让作品回应用户
制作一个能输入、勾选、本地保存并安全清空的一周实践计划器。
完成后你能
本课目标
- 设计输入、反馈与持久化闭环
- 使用 localStorage 保存本机进度
- 为破坏性操作提供撤销路径
开始前
准备这些
- 新建 09-interactive-artifact 文件夹
- 写下本周三个可在 15–60 分钟完成的实践任务
01 · 画出交互状态
先不写代码,列出用户动作和页面回应:添加任务→列表出现;勾选→进度更新;刷新→状态保留;清空→可撤销。
如果只描述静态页面,Agent 很容易忘记刷新、空输入、重复点击等状态。
示例
空列表 → 输入任务 → 添加成功 → 勾选完成 → 刷新保留
↘ 清空全部 → 5 秒内撤销02 · 生成可用的计划器
把成功路径与失败路径一次写清,能减少交互完成后再补状态的返工。
复制给 Agent
请在 09-interactive-artifact 中创建 practice-planner.html,做一个“一周 AI 实践计划器”。
功能:输入任务名称和预计分钟数;添加到本周列表;勾选完成;实时显示“已完成 x / 共 y 项”;使用 localStorage 保存任务与完成状态;刷新页面后恢复。
边界:空任务不能添加并显示就地错误;分钟数限制 15–180;重复点击添加不能产生两条相同记录;所有表单控件有 label;Enter 可以提交;状态变化用 aria-live 简短播报。
清空:提供“清空全部”,执行后显示 5 秒撤销按钮;不要使用浏览器 alert 或 confirm。
视觉:一个主动作,不用渐变,不加载框架,390px 下可用。03 · 验证本地保存
localStorage 只保存在当前浏览器与设备,不是云同步。页面应清楚告诉用户这一点,避免把本地保存写成账号功能。
- 添加三项任务,勾选其中一项。
- 刷新页面,确认三项和勾选状态都保留。
- 打开另一浏览器,确认它不会神奇同步。
- 查看页面说明是否明确写“仅保存在本机浏览器”。
04 · 跑完失败路径
交互作品的质量藏在失败路径里。逐个触发,而不是只走成功流程。
- 提交空任务:错误应靠近输入框,焦点仍可继续输入。
- 输入 5 分钟:页面应阻止并解释允许范围。
- 快速双击添加:不应出现重复记录。
- 清空后立即撤销:原任务和完成状态应恢复。
- 清空后等待超过 5 秒:撤销入口应消失。
复制给 Agent
请只审查 practice-planner.html 的状态逻辑。列出空输入、越界分钟、重复提交、刷新恢复、清空撤销五条测试的实际处理代码。发现缺口先报告,不要重写页面。不要跳过
完成检查
逐项在真实页面中验证。勾选状态只保存在这台设备的浏览器中。
0 / 6 已完成
这一课完成了。产物留下来,下一课会继续用到。
常见错误
卡住时先看这里
- 用 alert 报错
- 把错误放在对应字段旁,并保留用户输入。
- 把 localStorage 称为云端进度
- 明确它只属于当前浏览器与设备。
- 清空后无法恢复
- 暂存旧状态并提供有时限的撤销。
可选加练
再多走一步
增加按“未完成/已完成/全部”筛选,并确保刷新后任务不丢失。