Что такое государственное управление в угловых?и зачем мне его использовать? - PullRequest
0 голосов
/ 24 сентября 2018

Я новичок в Angular, и этот вопрос может быть очень широким.Но мне интересно больше узнать об использовании государственного управления.Недавно в одном из наших проектов было реализовано управление состоянием с использованием библиотеки NGXS.Однако я пытаюсь понять, каковы все преимущества, которые оно принесло приложению?

Реализация очень глубокая и на высоком уровне, есть некоторые действия, которые переносят данные приложения (как установлено пользователем) и слушателей к ним.действия, которые обрабатывают запрос и отправляют на следующий шаг по мере необходимости.Как это отличается с точки зрения использования приложения или производительности и т. Д., От общего углового приложения.Я нахожусь на начальной стадии понимания управления состоянием и чувствую, что пишу так много кода, который может и не потребоваться.пример - просто чтобы направить на другую страницу, мне пришлось реализовать модальное состояние для хранения объекта и объявить действие и слушателя для реализации этого действия.

Я перебираю несколько документов и получаю подробности о том, как состояниеуправление может быть реализовано, но не получается получить правильный ответ о том, почему управление состоянием должно быть реализовано.

Заранее спасибо!

1 Ответ

0 голосов
/ 25 сентября 2018

Во-первых, чтобы ответить на ваш вопрос, вы должны знать, что государственное управление не является термином Angular, и вам не нужно его использовать.Управление состоянием - это шаблон для реализации принципа CQRS , и я цитирую Википедию:

В нем говорится, что каждый метод должен быть либо командой, выполняющей действие, либо запросом, которыйвозвращает данные вызывающей стороне, но не обоим.

Управление состояниями выступает в качестве единственного источника правды для вашего приложения.

Вы можете создать приложение без управления состоянием.Вы можете использовать только услуги, и вы готовы идти.Добавление State Management к вашему приложению добавило бы некоторую сложность и шаблон, но тогда у вас будут преимущества (цитируется https://stackoverflow.com/a/8820998/1860540):

  1. Большая команда - Выесли вы выбрали архитектуру CQRS, вы можете легко разделить задачи разработки между людьми. Ваши лучшие люди могут работать над логикой домена, оставляя обычные вещи менее опытным разработчикам.
  2. Сложная бизнес-логика - CQRS заставляет васизбегайте смешивания логики домена и инфраструктурных операций.
  3. Масштабируемость имеет значение - С CQRS вы можете добиться высокой производительности чтения и записи, обработка команд может быть масштабирована на нескольких узлах, а запросы доступны только для чтения.операции, которые можно оптимизировать для выполнения операций быстрого чтения.

Наиболее популярными библиотеками Angular State Management являются NGRX и NGXS .

Я не буду подробно останавливаться на NGRX, но вкратце - он зарекомендовал себя в реальных производственных приложениях.

Hoтем не менее, NGXS является более молодой библиотекой управления состоянием для angular, которая приняла некоторые идеи NGRX и «расширила возможности» ее с помощью инструментов, предоставляемых Angular (таких как DI).Основное различие между NGRX и NGXS в том, что ваш шаблон значительно меньше на NGXS.Если вам интересно, вы можете прочитать основную причину Почему другое управление состояниями для Angular .

Итак, подведем итоги - если вы планируете создать крупномасштабное приложение, тогдавам следует рассмотреть возможность использования State Management, хотя - вам не нужно.

...