Неплохая идея вернуть экземпляр записи, так как Immutable.js
справится с этим за вас. Все ваше избыточное дерево будет неизменным, поэтому оно будет изменено только набором операций.
Как уже упоминалось здесь
Данные, инкапсулированные в объекте Immutable.JS, никогда не изменяются. Новая копия всегда возвращается.
Workflow
Immutable.js
делает данные Постоянными , поэтому предыдущие копии данных доступны и обмениваются данными через хеш-карты пытается и вектор пытается .
Следовательно, нет необходимости включать дорогостоящую операцию , такую как клонирование данных.
Потребность в копировании данных из кэша сводится к минимуму, что приводит к тому, что она на намного быстрее , чем операция клон . избегает создания новых объектов , если значение не изменяется.
Следует также отметить, что Object.assign
и spread operator
являются мелкими операциями. Следовательно, вам нужно сделать больше модификаций для вложенных операций.
Вы можете проверить производительность обоих здесь