Как бы ты декомпозировал Todo-приложение при большом количестве `useState` в одном компоненте?

Разделите Todo на ввод, список, элемент и фильтры, а связанные переходы состояния при необходимости вынесите в reducer.

Короткий ответ

Что ответить на собеседовании

Разделите Todo на ввод, список, элемент и фильтры, а связанные переходы состояния при необходимости вынесите в reducer.

Подробный разбор

Ответ с пояснениями

Разделите Todo на ввод, список, элемент и фильтры, а связанные переходы состояния при необходимости вынесите в reducer.

Производные значения, например отфильтрованный список и счётчик, лучше вычислять, а не дублировать в useState. Локальное состояние редактирования оставляют рядом с элементом, общее — у владельца данных. Custom hook может отделить логику без преждевременного глобального store.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее