Разрешается ли использовать immutable.js с реагировать на редукцию, чтобы редуктор возвращал экземпляр записи вместо объекта? - PullRequest
0 голосов
/ 29 августа 2018

Я новичок в реагировании на редуксы, а также на использование библиотеки immutable.js. Мне интересно, если это плохая идея или нет, чтобы мой редуктор возвращал экземпляр записи в отличие от простого объекта. Идея в том, что это позволит мне использовать удобные методы, такие как слияние, а не писать что-то вроде.

return Object.assign({}, state, updatedState)

Есть ли веская причина, почему НЕ следует этого делать?

1 Ответ

0 голосов
/ 30 августа 2018

Неплохая идея вернуть экземпляр записи, так как Immutable.js справится с этим за вас. Все ваше избыточное дерево будет неизменным, поэтому оно будет изменено только набором операций.

Как уже упоминалось здесь

Данные, инкапсулированные в объекте Immutable.JS, никогда не изменяются. Новая копия всегда возвращается.

Workflow

Immutable.js делает данные Постоянными , поэтому предыдущие копии данных доступны и обмениваются данными через хеш-карты пытается и вектор пытается .

Следовательно, нет необходимости включать дорогостоящую операцию , такую ​​как клонирование данных.

Потребность в копировании данных из кэша сводится к минимуму, что приводит к тому, что она на намного быстрее , чем операция клон . избегает создания новых объектов , если значение не изменяется.

Следует также отметить, что Object.assign и spread operator являются мелкими операциями. Следовательно, вам нужно сделать больше модификаций для вложенных операций.

Вы можете проверить производительность обоих здесь

...