immutable學習筆記

2021-09-21 01:16:46 字數 1832 閱讀 2007

immutable

什麼是immutable data,就是一旦被建立,它就不可變的一種資料結構。

對immutable物件的任何操作(新增、修改、刪除)都會生成乙個新的immutable物件。

immutable的實現原理是——pressistent data structrue(持久化資料結構),也就是使用舊資料建立新資料的時候,舊資料不變並且可以使用。

git**:

安裝命令:npm install immutable

常見的資料型別

map:鍵值對集合,對應object。

list:可重複的有序列表。對應array。

set:不重複並且無序的列表。

常見api

immutable.fromjs(),把乙個js物件轉化為immutable物件。

immutable.tojs(),把乙個immutable物件轉化為js物件。

使用 immutable.is() 函式或 .equals() 方法來確定值相等,而不是確定物件引用標識的 === 操作符
map()用來建立map型別的immutable物件

map();

console.log(map.of('key1','value1','key2','value2','key3','value3').tojs()); //

list()用來建立list型別的immutable物件

list([ 1, 2, 3 ]);  

console.log(list.of(, 2, [3], 4).tojs()); // [, 2, [3], 4]

size

// list

console.log(list([1,2,3,4]).size);// 4

console.log(list.of(1, 2, 3, 4).size);// 4

// map

console.log(map().size);// 2

console.log(map.of(, 2, [3], 4).size);// 2

set

// 將 key 位置的元素替換為 value

const $obj1 = map(, b: 2, c: 3, d: 444});

console.log($obj1.set('a', 0).tojs()); //

console.log($obj1.set('e', 99).tojs()); //

// 將 index 位置的元素替換為 value,即使索引越界也是安全的, 空位 undefined

const $arr1 = list([1, 2, 3]);

console.log($arr1.set(-1, 0).tojs()); // [1, 2, 0] 注意-1 等效於 $arr1.set($arr1.size + -1, 0)

console.log($arr1.set(4, 0).tojs()); // [ 1, 2, 3, undefined, 0 ] 空位置為了undefined

setin

// map

console.log(immutable.fromjs([1, 2, 3, ]).setin(['3', 'a'], 1000).tojs());//[1, 2, 3, ]

// list

console.log(immutable.fromjs([1, 2, 3, ]).setin(['3', 'a'], 1000).tojs());//[1, 2, 3, ]

Immutable的基本使用

一 immutable簡介 功能用法 immutable data 就是一旦建立,就不能再被更改的資料。對 immutable 物件的任何修改或新增刪除操作都會返回乙個新的 immutable 物件。immutable 實現的原理 是 persistent data structure 持久化資料結...

區間和查詢 Immutable

給乙個整數陣列 nums,求出下標從i到j的元素和 i j i跟j對應的元素也包括在內。樣例1 輸入 nums 2,0,3,5,2,1 sumrange 0,2 sumrange 2,5 sumrange 0,5 輸出 1 1 3 解釋 sumrange 0,2 2 0 3 1 sumrange 2...

react使用Immutable實戰

熟悉 react 的都知道,react 做效能優化時有乙個避免重複渲染的大招,就是使用 shouldcomponentupdate 但它預設返回 true 即始終會執行 render 方法,然後做 virtual dom 比較,並得出是否需要做真實 dom 更新,這裡往往會帶來很多無必要的渲染並成為...