Государственное управление - State management

Государственное управление относится к управлению состоянием одного или нескольких пользовательский интерфейс элементы управления, такие как текст поля, Кнопки ОК, Радио-кнопки и т. д. в графическом интерфейсе пользователя. В этом методе программирования пользовательского интерфейса состояние одного элемента управления пользовательского интерфейса зависит от состояния других элементов управления пользовательского интерфейса. Например, управляемый состоянием элемент управления пользовательского интерфейса, такой как кнопка, будет находиться во включенном состоянии, когда поля ввода имеют допустимые входные значения, а кнопка будет в отключенном состоянии, когда поля ввода пусты или имеют недопустимые значения. По мере роста приложений это может стать одной из самых сложных проблем при разработке пользовательского интерфейса.[1]

Это особенно актуально, когда состояние любого конкретного сообщения или формы на странице зависит от факторов за пределами текущей страницы или доступно на нескольких страницах. Например, рассмотрим пользователя, который вошел в систему и видит «приветственное» сообщение при первом посещении любой страницы, но не при последующих посещениях страницы. Каждая ли страница управляет состоянием авторизованного пользователя? Это привело бы к слишком большому копированию и дублированию кода. Вместо этого вы можете использовать шаблон управления состоянием для обработки сообщений (это может также включать обработку сообщений об ошибках и информационных сообщений вместе с описанным приветственным сообщением), а затем вызывать его для получения сообщения, когда оно становится доступным.

Примеры библиотек управления состоянием включают Vuex в качестве библиотеки управления состоянием для Vue.js Фреймворк JavaScript. В Угловой framework включает собственную библиотеку, использующую Наблюдаемые называется RxJS и Redux - это универсальная библиотека управления состоянием, которую можно использовать с любой из вышеперечисленных структур или других библиотек представлений, но очень часто она используется с Реагировать библиотека. Как упоминается в документации Redux, многие из этих библиотек управления состоянием легковесны и могут быть заменены друг на друга.[2] Также есть возможность свернуть свой собственный на основе алгоритм pub-sub где компоненты вашего интерфейса (например, поля формы, кнопки и сообщения) прослушивают централизованное хранилище данных в вашем приложении на предмет новых изменений.

React имеет useReducer крюк.[3]

Пример

функция фрукты(государственный, действие) {    выключатель (действие.тип) {        дело 'add_apple':           возвращаться { ...государственный, яблоки: государственный.яблоки + 1 };        дело 'add_banana':           возвращаться { ...государственный, бананы: государственный.бананы + 1 };        дело 'remove_apple':           возвращаться { ...государственный, яблоки: государственный.яблоки - 1 };        дело 'remove_banana':           возвращаться { ...государственный, бананы: государственный.бананы - 1 };        дефолт:           бросать новый Ошибка(«Тип необработанного действия».);        }    }}фрукты({ яблоки: 0, бананы: 0 }, { тип: "add_apple" });
Редуктор
Функция, которая принимает состояние и действие и возвращает новое состояние в зависимости от действия.
Действие
Строка, описывающая операцию изменения состояния.
Создатели действий
Вспомогательная функция создает объект действия. Не обязательно.
Состояние
Объект "ключ-значение", например словарь.

Смотрите также

Рекомендации

  1. ^ «Мотивация · Redux». redux.js.org. Получено 2019-07-23.
  2. ^ "Prior Art · Redux". redux.js.org. Получено 2019-07-23.
  3. ^ «Справочник по API хуков - React». reactjs.org.