UndoManager

撤销/重做管理器,提供基于 YJS 的撤销和重做功能,支持栈管理和历史清除操作

方法

constructor

构造函数

定义:

constructor(scope: Y.Doc | Y.AbstractType<any> | Y.AbstractType<any>[], options?: UndoManagerOptions)

参数:

参数类型说明
scopeY.Doc | Y.AbstractType | Y.AbstractType[]- YJS 文档或类型作用域,用于定义撤销/重做的追踪范围
options? = {}UndoManagerOptions-

undo

撤销上一次修改

定义:

undo(): boolean

返回: boolean

redo

重做被撤销的修改

定义:

redo(): boolean

返回: boolean

canUndo

检查是否有可撤销的操作

定义:

canUndo(): boolean

返回: boolean

canRedo

检查是否有可重做的操作

定义:

canRedo(): boolean

返回: boolean

clear

清除历史记录

定义:

clear(clearUndoStack?: boolean, clearRedoStack?: boolean): void

返回: void

参数:

参数类型说明
clearUndoStack?boolean- 是否清除撤销栈,默认 true
clearRedoStack?boolean- 是否清除重做栈,默认 true

stopCapturing

结束当前历史分组,下一次修改作为新的撤销步骤。

定义:

stopCapturing(): void

返回: void

addTrackedOrigin

开始追踪指定来源的本地事务。

定义:

addTrackedOrigin(origin: unknown): void

返回: void

参数:

参数类型说明
originunknown-

removeTrackedOrigin

停止追踪指定来源的本地事务,不影响已有历史。

定义:

removeTrackedOrigin(origin: unknown): void

返回: void

参数:

参数类型说明
originunknown-

observe

订阅历史新增、合并、撤销、重做和清空,返回取消订阅函数;回调中可读取 canUndo / canRedo。

定义:

observe(callback: () => void): () => void

返回: () => void

参数:

参数类型说明
callback() => void-

destroy

停止追踪并释放监听器;销毁所属 Y.Doc 时也会自动释放。

定义:

destroy(): void

返回: void


UndoManagerOptions

撤销历史选项。只记录本地事务;默认追踪 origin 为 null 的事务。

属性

属性类型说明
captureTimeout?number合并相邻操作的时间窗口(毫秒);0 表示每个事务独立成一步。
trackedOrigins?Set<unknown>需要记录的本地事务来源,可包含 origin 对象或其构造函数。