Immutable.js 使用總結

關於Immutable.is

測試結果:

//測試1
let a={a:1, b:1, c:1};
let b={a:1, b:1, c:1};
var map1 = Immutable.Map(a);//需要轉爲Immutable數據,在用is比較
var map2 = Immutable.Map(b);
console.log(map1 === map2);//false
console.log(Object.is(map1, map2));//false
console.log(Immutable.is(map1, map2));//true

//測試2
let a={a:{d:2}, b:1, c:1};
let b={a:{d:2}, b:1, c:1};
var map1 = Immutable.Map(a);
var map2 = Immutable.Map(b);
console.log(map1 === map2);//false
console.log(Object.is(map1, map2));//false
console.log(Immutable.is(map1, map2));//false

//測試3
let a={a:[1,2,3], b:1, c:1};
let b={a:[1,2,3], b:1, c:1};
var map1 = Immutable.Map(a);
var map2 = Immutable.Map(b);
console.log(map1 === map2);//false
console.log(Object.is(map1, map2));//false
console.log(Immutable.is(map1, map2));//false
//測試4
let a={a:{d:2}, b:1, c:1};
let b={a:{d:2}, b:1, c:1};
var map1 = Immutable.fromJS(a);
var map2 = Immutable.fromJS(b);
console.log(map1 === map2);//false
console.log(Object.is(map1, map2));//false
console.log(Immutable.is(map1, map2));//true

結果:is用作比較兩個引用類型的值是否相等,在數據嵌套的情況下,測試3失效的原因是Map不能做深層次的Immutable轉化。對於嵌套的數據結構,轉Immutable的時候,使用fromJS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章