一个用于管理历史状态的库,支持撤销与重做
npm i history-undo --save
- ES6 import 引入
import { History } from 'history-undo'
- CommonJs require 引入
const { History } = require('history-undo')
- Browser script 引入
<script src="/dist/history.min.js"></script>
示例:
const history = new History()
let obj = { value: 100 }
history.push(obj)
obj.value = 200
history.push(obj)
console.log('[ undo ]: ', history.undo()) // { value: 100 }
console.log('[ redo ]: ', history.redo()) // { value: 200 }
console.log('[ undo ]: ', history.undo()) // { value: 100 }
console.log('[ current ]: ', history.current) // { value: 100 }
创建实例
new History(options)
options.maxLength
{Number}: 栈最大长度(最多可保存的状态数量,超过后移出最先入栈的数据),默认为10
options.onChange
{Function}: 调用push/undo/redo/clear时的事件回调
新状态入栈
history.push(target)
target
{Object}: 任意要保存的状态数据
撤销,返回上一个保存的状态数据。如果不可撤销,则返回null
history.undo()
重做,返回下一个保存的状态数据。如果不可重做,则返回null
history.redo()
清空栈内容
history.clear()
只读属性,返回当前状态数据
history.current
只读属性,是否可撤销
history.undoable
只读属性,是否可重做
history.redoable
只读属性,栈长度(保存的状态数量)
history.count
npm run test