и полгода назад
Поэтому вопрос
Чем риверпод отличается от MobX, кроме чуть более (совсем ненамного) громоздкого синтаксиса?
Риверпод все-таки ближе к блоку, он предполагает, что ты будешь выкидывать стейты, и из них извлекать поля. И MobX умеет в Observable<T> и ObservableList в моделях, а Риверпод не умеет, там все через copyWith делается.
Это и есть иммутабельтность copywith, серЬЬезные программы только так и пишутся , с мутабельной обкекаться как два пальца
Мутабельность и вправду может создать много проблем, но иногда в этом есть смысл)
И кастати мутальный класс тоже оставили в риверпод для тех кто переходит с provider, так что obs<t> он тоже умеет, если это вообще плюсом можно назвать
MobX нигде не нарушает иммутабельность.
И где тут что нарушается?
Что такое иммутальеность?
Это я хотел спросить )
Это тебе Фокс засрал мозги своими рассуждениями про иммутабельность. И как следствие, у тебя неверное понимание концепции. Нигде не сказано, что члены Store должны быть иммутабельными. В Store нормально и правильно делать мутабельные члены: class _MyStore extends Store { @observable int counter = 0; } Иммутабельность касается только моделей. Я верю, что у тебя она написана так: @immutable class StringsHolder { const StringsHolder(this.strings); final ObservableList<String> strings; } Делая strings.add(), ты меняешь содержимое списка, а не саму ссылку на список, иммутабельность модели это не ломает.
нельзя менять менять содержимое списка при иммутабельности, нужно на основе старого создать новый потому ломает
простые переменные не идет речь , там и так понятно
Это тебе фокс сказал?
нет в другом месте видел
Обсуждают сегодня