Travels: Fast framework-agnostic undo/redo powered by mutative JSON patch
3 months ago
- #javascript
- #undo-redo
- #state-management
- Travels 是一个快速、框架无关的撤销/重做库,它只存储变更(JSON Patches)而非完整快照,速度提升10倍且内存效率更高。
- 兼容 React、Vue、Zustand 或原生 JavaScript,是文本编辑器、绘图应用、表单构建器和交互式应用的理想选择。
- 核心优势包括:高效内存的历史存储(仅保存差异)以及基于 Mutative 的快速不可变更新。
- 支持自动存档模式(每次 setState 生成历史记录)和手动存档模式(将多次变更合并为一步撤销/重做操作)。
- 提供完整的 API 方法,如 setState、back、forward、go、reset 和 subscribe 用于管理状态历史。
- 要求状态必须可 JSON 序列化,不支持 Date、类实例和函数等复杂类型。
- 内置 TypeScript 支持,可通过自定义逻辑扩展验证、权限控制、日志记录等功能。
- 提供 React、Vue 和 Zustand 的集成示例,以及将历史记录持久化存储的解决方案。