Immutable 详解及 React 中实践
2018-02-02 本文已影响48人
8ba7c349861d
1.immutable.js 在React、Redux中的实践以及常用API简介
https://yq.aliyun.com/articles/69516
2.# immutableJS一些API
3.https://www.w3cplus.com/javascript/immutable-js.html
Immutable.js 的 API 主要包含以下几部分:
-
formJS(),将 JavaScript Object 和 Array 彻底转换为 Immutable Map 和 List -
is(),与Object.is()类似都是对值的比较,但它会将 Immutable Iterable 视为值类型数据而不是引用类型数据,如果两个 Immutable Iterable 的值相等,则返回 true。与Object.is()不同的是,is(0, -0)的结果为true -
List,有序索引集,类似于 JavaScript 中的 Array -
Map,无序 Iterable,读写 Key 的复杂度为O(log32 N) -
OrderedMap,有序 Map,排序依据是数据的 set() 操作 -
Set,元素为独一无二的集合,添加数据和判断数据是否存在的复杂度为O(log32 N) -
OrderedSet,有序 Set,排序依据是数据的 add 操作。 -
Stack,有序集合,且使用unshift(v)和shift()进行添加和删除操作的复杂度为O(1) -
Range(),返回一个 Seq.Indexed 类型的数据集合,该方法接收三个参数(start = 1, end = infinity, step = 1),分别表示起始点、终止点和步长,如果 start 等于 end,则返回空的数据结合 -
Repeat(),返回一个 Seq.indexed 类型的数据结合,该方法接收两个参数(value,times),value 表示重复生成的值,times 表示重复生成的次数,如果没有指定times,则表示生成的Seq包含无限个value -
Record,用于衍生新的 Record 类,进而生成 Record 实例。Record 实例类似于 JavaScript 中的 Object 实例,但只接收特定的字符串作为 key,且拥有默认值 -
Seq,序列(may not be backed by a concrete data structure) -
Iterable,可以被迭代的(Key, Value)键值对集合,是 Immutable.js 中其他所有集合的基类,为其他所有集合提供了 基础的 Iterable 操作函数(比如map()和filter) -
Collection,创建 Immutable 数据结构的最基础的抽象类,不能直接构造该类型