Что означает состояние в приложении Angular? - PullRequest
1 голос
/ 25 июня 2019

Я новичок в NgRx и изучаю его документацию.Но в начале я столкнулся со следующим предложением:

Состояние - это единая неизменная структура данных.

Что означает состояние в простых словах?Нужны простые примеры, чтобы понять эту концепцию.

Нужно ли изучать Flux и Redux для понимания этих концепций?

1 Ответ

2 голосов
/ 25 июня 2019

Проще говоря, состояние в ngrx (или избыточном, или в других системах управления состояниями) - это то, как ваша система описывается в определенный момент времени.

Вы можете думать об этом как о простом объекте javascript, которыйпредставлять всю вашу заявку в одной точке.Давайте рассмотрим простой пример приложения todo s, где я могу пометить завершенный элемент (по завершенному флагу) или выбранный элемент (по индексу).возможное состояние может выглядеть так:

{
  items: [
    { text: 'Wash Car', completed: false},
    { text: 'Write Code', completed: true}
  ],
  selectedIndex: 0
}

Если я решу выбрать второй индекс, будущее состояние моего состояния будет выглядеть следующим образом:

{
  items: [
    { text: 'Wash Car', completed: false},
    { text: 'Write Code', completed: true}
  ],
  selectedIndex: 1
}

Итак, состояниеявляется представлением логики вашего приложения в один момент времени.Реализация представления зависит от вас - угловое, реагирующее и мобильное приложение могут использовать одно и то же состояние и использовать другой уровень представления.

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

Есть несколькоПричины для этого, но, возможно, наиболее очевидные, заключаются в том, что это качество помогает веб-системам распознавать изменения в состоянии и соответствующим образом изменять представление.

NgRx - это система управления состоянием, зависящая от углов.как описано на странице NgRx :

Магазин NgRx обеспечивает управление реактивным состоянием для приложений Angular, созданных под управлением Redux.

Итак, хороший момент для утверждениябыло бы выучить редукс (правило неизменности исходит из редукса).Вы можете рассматривать NgRx как систему управления состоянием на основе редуксов, мощь RxJS.Я бы предложил отчаянно изучить каждую концепцию, а затем перейти к изучению NgRx.

Обновление: эти вопросы могут быть полезны

  1. Почему объекты в Redux должны быть неизменяемыми?
  2. Redux: зачем использовать Object.assign, если он не выполняет глубокое клонирование?
...