для состояний, если тупо есть сервисы?
Чисто чтобы видеть Истрию изменения стейтов?
Паттерны же
Каво? Усложнять код ради паттернов?)
Даже не так. Ухудшать читаемость кода ради паттернов?)
увеличивать бандл ради паттернов)
Почему ухудшать? Как раз в случае стора понятно что происходит. А в случае сервисов надо разбиратся в логике автора
можно общую практику внутри проекта ввести, тогда разбираться надо будет всего один раз что даже кажется проще чем либу изучать
Или внутри компании даже
А почему бы и нет? История изменения стейта иногда очень помогает. Плюс есть история происходящих экшенов, тоже весьма полезно. Само кеширование становится удобней в разы, но имхо рационально использовать на больших долгосрочных проектах, где на кеше делается акцент прям, типа пва маркетплейса и т.п. По поводу читаемости - если вы работали со сторами и разобрались , то читаемость остается прежней, не проще и не легче, это просто инструмент, освоил - понимаешь, не освоил - не понимаешь.
Для примера - представьте себе приложение в котором должен быть оффлайн режим с несколькими каталогами, историей заказов пользователя, тысячей продуктов, сотней сеттингов, стейтом модалок и т.п. Визуально обработать и понять такие объемы намного легче, когда есть стор, даже не представляю как с этим работать без его использования
Истрию изменений можно реализовать самому намного проще
С удовольствием бы посмотрел на реализацию, есть ссылка?
Я юзаю ngrx с вот этим расширением.
Если ссылки нет, то хотя бы концепцию - очень интересно.
самописный редакс получится :)
Делаем класс State, который в себе хранит список объектов, где ключ – название состояние, а значение – список состояний. И есть метод set, который принимает в себя объект с ключом – названием состояния и значением – самим состоянием. Он добавляет в список состояний новое и возвращает значение этого объекта, чтобы можно было сделать так this.value = state.set({stateName: stateValue}) И this.value становится stateValue Самое простое что пришло в голову, куда уж проще
https://refactoring.guru/ru/design-patterns/memento
Расход памяти оцените, каждый раз копировать весь стейт?
Однако все модные "функциональные" стейт менеджеры на флакс архитектуре так и работают, а не при помощи undo/redo паттерна
Обсуждают сегодня