Управление состоянием

Что это такое

Управление состоянием — это набор решений о том, где живут данные приложения и кому позволено их менять. Это не название библиотеки: библиотека может участвовать, однако решения принимаются раньше. Вопросы при этом всегда одни и те же — какой компонент владеет этим значением, кому ещё нужно его читать, как изменение доходит до всех, кто его отображает, и наше ли это значение вообще или копия того, что сервер уже знает.

Почему это важно

Фронтенд-приложения отказывают характерным образом, когда эти вопросы остаются без ответа: один и тот же факт хранится в трёх местах, и два из них устарели — пользователь меняет имя в диалоге, шапка всё ещё показывает старое, а баг заводят на шапку. Инструменты какое-то время это скрывают, а исправить уже не могут, ведь ни одно место не знает правды. Чтобы такой отказ не случился вовсе, модель владения решают заранее: локальное — где возможно, общее — осознанно, серверные данные — как кэш, а не как состояние.

Что в этом треке

  1. Локальное и общее состояние (02-frontend/23-state-management/01-local-versus-shared-state) — начинать с наименьшей области, которой достаточно, и поднимать её только когда появляется второй потребитель.
  2. Клиентское и серверное состояние (02-frontend/23-state-management/02-client-and-server-state) — почему данные, загруженные из API, — другая задача, чем данные, которые правит пользователь.

Предварительные требования

Что читать дальше

  • React (02-frontend/29-react) — одна конкретная модель компонентов, в которой эти решения приходится принимать.
  • Vue.js (02-frontend/22-vuejs) — реактивная модель, меняющая положение границы совместного использования.
  • Кэширование (Redis) (05-backend-data/16-caching-redis) — серверная версия того же рассуждения «это копия, а не правда».