Следует ли использовать `.merge ()` или несколько `.set ()` для обновления нескольких полей в ImmutableJS? - PullRequest
0 голосов
/ 04 мая 2018

В настоящее время я использую immutablejs в своем проекте React для обновления хранилища данных Redux.

Дано:

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

Пример использования .merge():

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

Пример использования нескольких .set():

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

Какой способ рекомендовать?

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

каждый вызов .set () создает новый неизменяемый экземпляр, поэтому его объединение приводит к ненужному загрязнению памяти. Вы должны использовать его с .withMutations () , что приведет к созданию только одного неизменяемого экземпляра.

.merge () внутренне использует .set () и .withMutations (), но также вызывает некоторый дополнительный код, отвечающий за обработку нескольких аргументов слияния.

0 голосов
/ 04 мая 2018

На самом деле merge метод вызовет set в реализации. Вы можете видеть в ImmutableJS

Так что, на мой взгляд, использование set - лучшая производительность (немного). Вы можете выбрать все, что вам нравится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...