我正在研究助焊剂应用并正在考虑采用不可变.js https://github.com/facebook/immutable-js来维持状态。我看到 React 提供了自己的帮助器来更新不可变对象(http://facebook.github.io/react/docs/update.html http://facebook.github.io/react/docs/update.html),但无法判断它与 immutable 自己的 setIn 和 updateIn 方法有何不同(即,我已经可以使用 === 比较对象来判断它们是否随 setIn 更改)。是否有理由将 React 助手与 immutable.js 一起使用?它只是语法糖吗?
长话短说是:
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');
React.addons.update
不适用于 Immutable.js 值;它适用于纯 JavaScript 对象和数组 https://github.com/facebook/react/blob/master/src/addons/update.js.
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 中的类型是使用以下方法实现的special http://en.wikipedia.org/wiki/Hash_array_mapped_trie data 结构 http://hypirion.com/musings/understanding-persistent-vector-pt-1性能和空间优势;显然,React.addons.update 消耗和生成的纯 JavaScript 对象不是。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)