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 数据结构的最基础的抽象类,不能直接构造该类型