Redux
, а также immutable.js
- архитектурное усложнение. Какую проблему вы собираетесь решить с помощью Redux
? Если вы уже приняли решение относительно инструмента управления состоянием и собираетесь углубиться в него.
Неизменяемость в основном связана с требованием реализации редукторов как чистых функций. Здесь immutable.js
может помочь «пересчитать» ссылку на все состояние независимо от того, какая его часть была изменена. Но это набор неизменяемых структур данных. Чтобы передать их в виртуальный DOM, вы должны преобразовать их toJS
. Готовы ли вы заплатить за такую «проверку» во время выполнения с дополнительными осложнениями и возможными проблемами с производительностью.
Может быть, лучше настроить ESLint так, чтобы во время компиляции проверки неизменяемости везде в вашем коде. Я имею в виду такие места, как:
const state = { foo: { bar: { baz: 'plugh' } } };
state.foo.bar.baz = 'Do not do that cause React do not track such changes at all)';