@YNile
JS Developer

Почему в Redux нельзя мутировать данные?

Всем привет.
Помогите разобраться. Почему мутации это плохо?
Где-то на подсознании я понимаю, что лучше подменять и не работать с исходником, но все же?

В большинстве турториалов, переводов и докладов встречается такое:
- В противном случае это может иметь нежелательные последствия

Или вот из первого доклада Дена Абрамова:
- Please, do not mutate your data. Trust me.

Что может случится? Есть какой-то реальный кеис с ошибкой / проблемой?

UPD
С хабры.
Ну одно из простейших объяснений — если вы трогаете одно поле состояния, а другие не меняете, то компоненты, которые подписаны через connect() на поля, которые вы не трогаете, не будут перерисованы впустую.
  • Вопрос задан
  • 3474 просмотра
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Все очень просто: дефолтный механизм проверки изменений в React — оператор ===. Соответственно, если вы измените объект, а не создадите новый, то компонент просто не перерендерится.
Ну а дальше уже начинаются архитектурные преимущества — отсутствие состояние -> чистые функции -> простота тестирования и дебага.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
victorzadorozhnyy
@victorzadorozhnyy
я встречался часто с тем, что стейт не успевает мутировать, а действие идет дальше и возникают ошибки. если просто производить замену, то такого не происходит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы