基于 sessionStorage 的对象状态记忆与差异比较工具。
sessionStorage
Memo 将对象的 JSON 序列化结果持久化到 sessionStorage, 并提供 Memo.compare 与 Memo.update 方法, 用于检测对象是否发生变化以及更新记忆状态。
Memo
26.4.13
const memo = Memo.of("formState")const changed = memo.compare({ name: "Yida" })if (changed) { memo.update({ name: "Yida" })} 复制
const memo = Memo.of("formState")const changed = memo.compare({ name: "Yida" })if (changed) { memo.update({ name: "Yida" })}
创建一个新的 Memo 实例,并立即将对象持久化到 sessionStorage。
记忆对象的唯一标识名称。
需要记忆的初始对象。
Memo.of
只读
比较当前记忆对象与新对象的哈希值是否相同。
通过 Memo.hashCode 分别计算两个对象的哈希值,相等则视为未变化。
需要比较的新对象。
若两对象哈希值相同返回 true,否则返回 false。
true
false
计算指定对象的哈希值。
默认使用当前记忆的对象进行计算。实现基于 JSON 字符串的循环字符编码; 若对象无法序列化,则返回一个随机的十六进制字符串。
需要计算哈希值的对象,默认为当前记忆对象。
十六进制格式的哈希字符串。
更新记忆的对象状态,并将新状态同步到 sessionStorage。
需要更新的新对象。
包含新对象状态的 Memo 实例。
静态
尝试从 sessionStorage 恢复记忆对象;若不存在则创建空对象记忆。
当缓存内容存在但 JSON 解析失败时,会静默忽略错误并返回一个以空对象 为初始状态的新实例。
恢复或新建的 Memo 实例。
基于
sessionStorage的对象状态记忆与差异比较工具。Memo将对象的 JSON 序列化结果持久化到sessionStorage, 并提供 Memo.compare 与 Memo.update 方法, 用于检测对象是否发生变化以及更新记忆状态。添加于
26.4.13
示例