将 React 的不可变助手与 Immutable.js一起使用
Using React's immutable helper with Immutable.js
我正在开发一个通量应用程序,正在考虑采用不可变.js来维护状态。 我看到 react 提供了自己的帮助程序来更新不可变对象 (http://facebook.github.io/react/docs/update.html),但无法说出它与不可变的自己的 setIn 和 updateIn 方法有何不同(即,我已经可以将对象与 === 进行比较,如果它们与 setIn 一起更改)。 是否有理由将反应助手与不可变.js一起使用? 只是句法糖吗?
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');
React.addons.update
不适用于不可变.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对象显然不是。
相关文章:
- immutable.js与嵌套映射/对象的比较/相等性能
- 使用immutable.js在Redux中操作嵌套数组中的数据
- 在Immutable js-Map中执行嵌套更新
- 如何在Immutable.js中读取数组中的值
- Redux开发工具Chrome扩展Immutable.js导致错误
- Immutable.js:表示2D游戏场的数据结构
- 如何在Immutable.js中按id合并列表
- 如何使用Immutable.js从javascript原始对象创建记录映射
- 在immutable.js中更改列表中的一项
- 正在更新Immutable.js列表中的所有对象
- 使用 React、Redux 和 Immutable.js 创建模态弹出窗口
- 将 React 的不可变助手与 Immutable.js一起使用
- immutable.js更新/设置复杂的Map
- 使用Immutable.js的mergeDeep()时丢失属性
- Immutable.js:如何在导出到数组时保持不变性
- 只需使用Immutable.js将对象分配给变量,即可克隆新对象
- React使用React Immutability Helper或immutable js合并对象的不可变数组
- 在Immutable.js映射中查找嵌套对象的最佳方法
- 正在Immutable.js中获取嵌套值
- 聚合数据绑定和Immutable.js