Reducer должен не мутировать прежнее состояние; при реальном изменении он возвращает новые ссылки для изменившихся частей.
Почему reducer должен возвращать новое состояние?
Reducer должен не мутировать прежнее состояние; при реальном изменении он возвращает новые ссылки для изменившихся частей.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Reducer должен не мутировать прежнее состояние; при реальном изменении он возвращает новые ссылки для изменившихся частей.
Это позволяет предсказуемо сравнивать версии, хранить историю и обнаруживать обновления. Если ничего не изменилось, допустимо вернуть исходную ссылку. Immer позволяет записывать изменения в draft, но итог всё равно строится с сохранением неизменности предыдущего состояния.