2014-12-04 48 views
7

我正在研究助焊劑應用程序,並且正在考慮採用immutable.js來維護狀態。我看到這種反應爲更新不可變對象提供了自己的幫助(http://facebook.github.io/react/docs/update.html),但無法分辨它與不可變自身的setIn和updateIn方法有什麼不同(即,如果它們發生更改,我已經可以將對象與===進行比較與setIn)。有沒有理由使用immutable.js的反應助手?它只是語法糖嗎?使用React的Immutable.js不變的幫手

TL; DR是:從

var map = Immutable.fromJS({bar: 'baz'}); 
map2 = map.set('bar', 'foo'); 

回答

8

React.addons.update

var map = Immutable.fromJS({bar: 'baz'}); 
map2 = React.addons.update(map, { 
     bar: {$set: 'foo'} 
    }); 

不同不與Immutable.js值工作;它works with plain JavaScript objects and arrays

​​

在Immutable.js的類型是使用性能和空間的好處special數據structures實施;顯然,由React.addons.update消耗和生成的純JavaScript對象不是。