使用命令模式实现 undo、redo 功能

Jul 28, 20223 min read

此文最后修改于 1474 天前,可能包含很多不再适用的废话,阅读需谨慎~

场景

最近在实现互动白板 undoredo 功能时候了解到了命令模式,直接上代码,其实并不复杂

TS

可以看到 UndoRedoManager 主要就是维护了执行栈和未执行栈,然后每次 undoredo 时候入栈出栈执行对应 cmd 的 executeunexecute 方法

demo 演示

Code Playground

总结

所谓命令模式实现的 undoredo 功能其实就是当你想执行一个动作时候,同时提供该命令的反向操作,以上边 demo 为例,当你想把方块从 (0, 0) 移动到 (100, 100) 时候,需同时提供一个反向命令把它从 (100, 100) 移动到 (0, 0),命令是在 manager 中帮你执行,可以做到代码抽象分离,避免业务代码中掺合过多控制流程

浏览量

最后修改于 2022-07-28

继续阅读

上一篇

参考 react-live,如何实现代码在线预览?

Jul 4, 2022
下一篇

用 react-spring 开发一个灵动的黑暗模式切换按钮

Sep 18, 2022
Made withbyXiaojun Zhou