我正在研究一个flux应用程序,我正在考虑采用immutable.js来维护状态.我看到react提供了自己的帮助器来更新不可变对象(http://facebook.github.io/react/docs/update.html),但是无法告诉它与immutable自己的setIn和updateIn方法有什么不同(也就是说,我已经可以将对象与===进行比较,如果它们随setIn变化.是否有理由将react helper与immutable.js一起使用?它只是语法糖吗?
TL; DR是:
var map = Immutable.fromJS({bar: 'baz'}); map2 = React.addons.update(map, { bar: {$set: 'foo'} });
不同于
var map = Immutable.fromJS({bar: 'baz'}); map2 = map.set('bar', 'foo');
Michelle Til.. 8
React.addons.update
不适用于Immutable.js值; 它适用于纯JavaScript对象和数组.
var map = { bar: 'baz' }; var map2 = React.addons.update(map, { bar: {$set: 'foo'} }); console.log(map2); // A plain JS object of value `{bar: 'foo'}`
Immutable.js中的类型是使用特殊的数据结构实现的,以提高性能和空间效益; 显然,React.addons.update消耗和生成的普通JavaScript对象不是.
React.addons.update
不适用于Immutable.js值; 它适用于纯JavaScript对象和数组.
var map = { bar: 'baz' }; var map2 = React.addons.update(map, { bar: {$set: 'foo'} }); console.log(map2); // A plain JS object of value `{bar: 'foo'}`
Immutable.js中的类型是使用特殊的数据结构实现的,以提高性能和空间效益; 显然,React.addons.update消耗和生成的普通JavaScript对象不是.