前端之家收集整理的这篇文章主要介绍了
Immutable 及 React 中实践,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<table class="text"><tbody><tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
解决这个问题,一般的做法是使用 shallowCopy(浅拷贝)或 deepCopy(深拷贝)来避免被
修改,
但这样做造成了
cpu 和内存的浪费
Immutable 可以很好地
解决这些问题。
Immutable Data 就是一旦创建,就不能再被更改的数据。对 Immutable 对象的任何
修改或
添加删除操作
都会返回一个新的 Immutable 对象。Immutable 实现的原理是 Persistent Data Structure(持久化数据结构),
也就是使用旧数据创建新数据时,要保证旧数据同时可用且不变。同时为了避免 deepCopy 把所有节点都复制一
遍带来的
性能损耗,Immutable 使用了 Structural Sharing(结构共享),即如果对象树中一个节点发生变化,
只
修改这个节点和受它影响的父节点,其它节点则进行共享。
Facebook 工程师 Lee Byron 花费 3 年时间打造,与 React 同期出现,但没有被默认放到 React 工具集里
(React 提供了简化的 Helper)。它内部实现了一套完整的 Persistent Data Structure,还有很多易用的数据类型。
像 Collection、List、Map、Set、Record、Seq。有非常全面的map、filter、groupBy、reduce``find
函数式操作
方法。
同时 API 也尽量与 Object 或 Array 类似。
其中有 3 种最重要的数据结构说明一下:(Java 程序员应该最熟悉了)
Map:键值对集合,对应于 Object,ES6 也有专门的 Map 对象
List:有序可重复的列表,对应于 Array
Set:无序且不可重复的列表 原文链接:/note/420798.html