# immutable.jS 与 React


## 引用带来副作用

js 中数据类型分为2种，primitive value 和 Object。js 中的对象非常灵活，某个地方对对象进行修改后产生的结果难以预期，所以我们需要不可变对象。
但是自己实现的对象拷贝算法，可能浪费时间也浪费空间， 所以诞生了  immutable.js 这个库。



## 核心实现

immutable.js 基于哈希映射树和 vector map tries。只 clone 该节点和其祖先节点，其他保持不变，这样可以共享大部分相同的节点，大大提高性能。

1. 避免直接修改线性结构
2. 减小内存开销（增量更新）