- 假设你有这样的一个 Javascript 结构对象:
const data = {
to: 7,
tea: 3,
ted: 4,
ten: 12,
A: 15,
i: 11,
in: 5,
inn: 9
}
-
可以想象它在 Javscript 内存里的存储结构是这样的:
-
但我们还可以根据 key 使用到的字母作为索引,组织成字典查找树的结构:
-
在这种数据结构中,无论你想访问对象任意属性的值,从根节点出发都能够访问到。当你想修改值时,只需要创建一棵新的字典查找树,并且最大限度的利用已有节点即可
假设此时你想修改 tea 属性的值为14,首先需要找到访问到tea节点的关键路径:
-
然后将这些节点复制出来,构建一棵一摸一样结构的树,只不过新树的其他的节点均是对原树的引用:
-
最后将新构建的树的根节点返回
React + Redux 性能优化(二)工具篇: Immutablejs