应该使用`.merge()`或多个`.set()`来更新ImmutableJS中的多个字段?

时间:2018-05-04 04:04:23

标签: javascript merge immutable.js

我目前在我的React项目中使用immutablejs来更新Redux数据存储。

假设:

const state = new Map({ key0: 'value0' });

使用.merge()的示例:

state.merge({
  key1: 'value1',
  key2: 'value2',
});

使用多个.set()

的示例
state
  .set('key1', 'value1')
  .set('key2', 'value2');

应该推荐哪种方式?

2 个答案:

答案 0 :(得分:1)

实际上merge方法会在实施中调用set。您可以在ImmutableJS

中看到

所以从我看来,使用set是更好的表现(一点点)。你可以选择你喜欢的任何东西

答案 1 :(得分:1)

每次调用.set()都会创建一个新的不可变实例,因此链接它会导致不必要的内存污染。 您应该将其与.withMutations()配合使用,这样只会产生一个不可变的实例。

.merge()内部使用.set()和.withMutations(),但它还会调用一些额外的代码来处理多个合并参数。

相关问题