Всем привет. Подскажите пожалуйста насчёт иммутабельности. Насколько мне известно из плюсов, это более безопасное использование и тестирование. И подход, например в Redux, это не мутировать данные, а возвращать их новое состояние. Теперь же сам вопрос, насколько я понимаю в mobx наоборот, состояние мутабельно в отличие от Redux. Почему, если мутировать данные зачастую это, если обобщить, плохо, то в немало известной библиотеке mobx подход именно в мутировании данных?
Тоже задаюсь подобным вопросом. И сделал следующие выводы:
На проектах, где требуется тратить как можно меньше оперативной памяти, выбирают mobx. Т.к. иммутабельность принципиально возможна лишь с накладными расходами по памяти. А когда мы мутируем состояние, мы не создаём его копию.
Думаю, что примерно по такой логике размышляют разработчики, выбирая mobx.
Просто многим, кто использует mobx, иммутабельность нафиг не нужна. Нужно некое глобальное хранилище, которое будет оповещать компоненты об изменениях, чтоб не городить кучу бойлерплейтов. Хотя и тут не без этого, но и это частично решаемо.