От: https://redux.js.org/introduction/three-principles
Состояние только для чтения. Единственный способ изменить состояние - это создать действие, объект, описывающий произошедшее. Это гарантирует, что ни представления, ни сетевые обратные вызовы никогда не будут писать напрямую в состояние. Вместо этого они выражают намерение преобразовать государство. Поскольку все изменения централизованы и происходят один за другим в строгом порядке, не существует тонких расовых условий, на которые стоит обратить внимание. Поскольку действия представляют собой просто простые объекты, их можно регистрировать, сериализовать, хранить и затем воспроизводить для целей отладки или тестирования.
Из-за этого у меня возникает два вопроса ...
- Как избыточное принудительное выполнение изменений происходит в строгом порядке? Если я изменяю состояние синхронно, тогда я не понимаю, почему это когда-либо будет проблемой. Если я хочу изменить состояние после асинхронного события 1 и асинхронного события 2 по порядку, не нужно ли мне делать что-то вроде использования обратных вызовов или обещаний независимо от того, использую ли я избыточность, чтобы гарантировать, что состояние изменяется в ожидаемом порядке?
- Почему проще регистрировать действия? Если бы я не использовал избыточность, разве я не мог просто console.log вносить каждое изменение состояния, чтобы облегчить отладку и тестирование? Я просто экономлю время написания console.log при каждом изменении состояния, изучая приставку?