Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 1.52 KB

immutable.md

File metadata and controls

36 lines (29 loc) · 1.52 KB

immutable

  • 持久化数据结构
  • 结构共享

例子

  1. 假设你有这样的一个 Javascript 结构对象:
const data = {
  to: 7,
  tea: 3,
  ted: 4,
  ten: 12,
  A: 15,
  i: 11,
  in: 5,
  inn: 9
}
  1. 可以想象它在 Javscript 内存里的存储结构是这样的: immutable1

  2. 但我们还可以根据 key 使用到的字母作为索引,组织成字典查找树的结构: immutable2

  3. 在这种数据结构中,无论你想访问对象任意属性的值,从根节点出发都能够访问到。当你想修改值时,只需要创建一棵新的字典查找树,并且最大限度的利用已有节点即可 假设此时你想修改 tea 属性的值为14,首先需要找到访问到tea节点的关键路径: immutable3

  4. 然后将这些节点复制出来,构建一棵一摸一样结构的树,只不过新树的其他的节点均是对原树的引用: immutable4

  5. 最后将新构建的树的根节点返回

参考

React + Redux 性能优化(二)工具篇: Immutablejs