Вопрос нужен, чтобы оценить, понимает ли кандидат, как и зачем централизовать состояние приложения.
Single source of truth — это принцип, при котором у данных есть единственный авторитетный источник. Все части приложения читают данные из него и изменяют их через согласованные механизмы. Это упрощает логику и предотвращает рассинхронизацию состояния. Принцип широко используется в React и state-менеджерах.
Single source of truth — это не конкретная библиотека, а архитектурная идея.
У каждого логического набора данных:
есть одно место хранения
нет дублирующих копий с “частичной правдой”
изменения происходят через предсказуемый поток
Это снижает количество ошибок и упрощает сопровождение.
Если одно и то же состояние:
хранится в родителе
копируется в дочерний компонент
частично дублируется в локальном state
возникают вопросы:
какое значение актуально
кто должен обновлять данные
почему UI рассинхронизировался
Типичные варианты единого источника:
state родительского компонента
глобальный store (Redux, Zustand)
URL (query params, router state)
Компоненты:
получают данные через props или хуки
не владеют копиями этих данных
Single source of truth:
упрощает дебаг
делает поведение приложения детерминированным
облегчает тестирование
Иногда допустимы исключения:
временное локальное состояние input
UI-состояние (hover, focus)
оптимистичные обновления
Важно, чтобы это были осознанные решения, а не случайное дублирование.
Single source of truth — это принцип, который делает состояние приложения понятным и управляемым. Он снижает количество ошибок и является фундаментом архитектуры React-приложений и state-менеджеров.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию