Задать вопрос
@YNile
JS Developer

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

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

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

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

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

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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽