Сейчас смотрю примеры их использования и не могу понять зачем они нужны в ангуляре .... в реакте да .. но в ангуляре ... не пойму
Правильно, не нужны)
Если в команде нет человека, который способен спроектировать собственный стэйт менеджер на сервисах, то нормальная тема имхо
Вопрос скорее всего дня сего вообще нужны стейт менеджеры в ангуляре . Я не совсем понимаю.
А в чем ключевое отличие ангуляра от реакта, из-за которого ангуляру не нужны стейт-менеджеры?
Ну по большей части, чтобы использовать готовые решения, а не пилить свои велосипеды )
Не задумывался если честно =(
Ну наверно имелось в виду наличие сервисов
Ну, вы же говорите - в реакте понятно зачем, а в ангуляре - не понятно. Значит, есть разница какая-то?
Сервис - это просто синглтон. Нет никакой проблемы использовать синглтон в реакте. Только он никак не решает проблему управления состоянием.
Видимо я вообще не понимаю что значит управление состоянием..... если разобраться на простом примере CRUD. У меня есть сервисы для получения , изменения и обработки данных. Это будет являться стейт менеджером ? так же можно использовать NgRx и angular-ngrx-data. В принципе тоже самое.
Ангуляровский сервис, который просто дергает http и отдает в ответ стримы - это реализация паттерна Gateway: https://martinfowler.com/eaaCatalog/gateway.html Если ваша бизнес-логика укладывается в этот паттерн и ничего кроме этого вам не нужно, то скорее всего, у вашего приложения нет состояния, которым надо управлять. Тогда, разумеется, не нужен и стейт-менеджер. Но чаще случается так, что состояние размазано по компонентам каким-то образом (способов куча). Тогда разумно будет логику управления состоянием вынести в отдельный слой и реализовать это через сервис, внутри которого будет один или несколько BehaviorSubject'ов и методы, которые эмитят значения в них. Но как только сценарий управления состоянием становится чуть сложнее примитивных случаев, никто кроме автора кода уже не может в этом разобраться (а часто и сам автор не может). Тут вам поможет CQRS и различные его реализации - ngrx, ngxs. Они дают предсказуемость, читабельность и простоту отладки через девтулзы. Т.е. как всегда, инструмент нужно выбирать под задачи.
оУ.. Спасибо ! Теперь понятно !
Обсуждают сегодня