PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Зачем в State Manager класть карточки товара?

Продвинутые темы

Карточки товара кладут в State Manager, когда они используются во многих несвязанных компонентах, нужны кеширование, синхронизация состояния (корзина, избранное) и предсказуемое управление.

Зачем класть в State Manager

Общий доступ из многих мест

Карточки нужны на витрине, в корзине, в избранном, в рекомендациях — единый store даёт всем актуальные данные без prop drilling и дублирования.

Синхронизация состояния

Изменение (добавили в корзину, лайкнули) должно отразиться везде мгновенно:

// добавили товар в корзину → обновилось в хедере (счётчик), на странице, в мини-корзине
dispatch(addToCart(product));

Кеширование

Не перезапрашивать список товаров при каждом переходе — данные в store переиспользуются.

Производные данные

Фильтрация, сортировка, подсчёт (selectors) на основе общего списка.

Но: нюанс с серверными данными

Карточки товара — это серверные данные. Часто их лучше держать не в Redux, а в TanStack Query/SWR, которые специально управляют серверным состоянием (кеш, рефетч, инвалидация, статусы загрузки).

Когда НЕ нужно

Если карточки используются локально на одной странице без синхронизации — достаточно локального состояния или прямого запроса.

Коротко для собеседования

Карточки товара кладут в State Manager, когда они нужны многим компонентам (витрина, корзина, избранное), требуют синхронизации (изменение видно везде) и кеширования. Но как серверные данные их часто лучше держать в TanStack Query/SWR (кеш, рефетч, инвалидация), а не в Redux. Для локального использования — обычное состояние.

Другие вопросы раздела