撤销
Undo
初级通用撤销(Undo)是让用户把刚才的一步或几步操作恢复到操作前状态的功能。它解决误操作后难以找回内容的问题,比如在编辑器里误删一段文字后,可以点撤销把文字找回来。
你可能会说:「我在编辑页面时可能会误删内容,想让用户点一下就能恢复刚才的修改。」
动手看看周报编辑器的逐步撤销
团队文档 / 周报
历史位置:2 / 2
产品周报 · 第 24 周
本周已完成首页改版。
周五前完成原型评审。
操作历史向左调一步,撤销最近的一次操作。
0 · 原始内容
1 · 删除段落
2 · 修改标题
这份周报先删了段落,再改了标题。把下方滑块从 2 向左调到 1、0,模拟连续两次撤销;观察标题和正文分别何时恢复。
现在是两次操作之后的内容。最近的一步是修改标题,所以第一次撤销应先恢复标题,而不是找回更早删除的段落。
高亮的历史项表示当前内容所在的位置。滑块向右是回放后续状态,相当于本例中的重做,不是继续撤销。
要点撤销怎样把刚才的操作找回来?
- 1
先确定哪些操作能够撤销
我们通常让编辑文字、移动卡片这类操作进入撤销记录,因为它们的前后状态容易界定。像已经发出的邮件,就不能只把页面改回去,还要考虑收件人已经收到它。
- 2
记录足够恢复的操作信息
做撤销时,不能只让按钮看起来生效。比如用户把任务从周一拖到周三,系统得记住它原来的位置,撤销时才能放回周一;同时还要更新界面和实际保存的数据。
- 3
讲清撤销的范围和时机
你可以让用户连续撤销几步,也可以只允许撤销最近一次删除。范围不同,实现方式也不同。若撤销入口只在删除后的短时间内出现,就要让用户看得出何时还能恢复。
容易混淆的地方
撤销针对用户刚做过的操作,依赖可恢复的记录;它不是浏览器的“返回”,后者通常是回到上一个页面。它也不同于“回滚”:回滚常用于把已发布版本或系统数据恢复到较早状态,影响范围可能涉及其他用户,而撤销通常围绕当前用户的一次操作。
什么时候用
适合用
- 做文章编辑器时,让用户撤销刚才输入、删除或调整的内容,减少误操作造成的损失。
- 做看板时,用户把任务卡片拖错列,可以撤销这次移动,回到原来的位置。
- 做后台列表时,删除项目后短暂提供撤销入口,让用户能找回刚删掉的项目。
不适合用
- 用户只是想回到上一页时,不需要实现撤销操作;提供返回链接或使用页面导航更合适。
- 用户想恢复上周发布的网站版本时,不适合用编辑界面的撤销;更适合用版本记录和回滚。
- 转账已经完成时,不能靠撤销按钮假装交易没发生;需要走退款或冲正流程。
练一练选一个答案,看看解释
你在做任务看板:用户误把一张卡片从“待办”拖到“完成”。怎样设计才算真正支持撤销?
让 AI 帮你做复制给 AI Agent 直接用
请为任务看板实现撤销:用户移动卡片后,可以撤销最近一次移动。请记录卡片原来的列和位置,撤销时同步恢复界面与保存的数据;如果保存失败,也请让界面与实际数据保持一致。