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