#Фронтенд
Ответ на этот вопрос очень простой - где нужен стейт, там и располагаем. И на этом можно было бы закончить пост, но нет. Если все так просто, то откуда появляются God components?
God Component(компонент бога, богоподобный компонент) - компонент, который умеет слишком много, содержит слишком много состояний, слишком много логики. Является антипаттерном.
God component к сожалению не редкость. Я сам присутствовал на пришествии нескольких таких божеств, а парочку по неопытности склепал сам. Чем он плох?
1. Понять что он делает без бутылки бывает очень сложно. Следовательно поддержка -
2. Из-за переплетения
3. Описать его тестами очень сложно, тк вы просто не можете сформулировать что он делает. Обычно если вы не можете описать тестами ваш компонент, то это звоночек, что он он протух и воняет. Надежность —
4. Добавить туда новую функциональность очень сложно, нет тестов(либо они хуже самого компонента), код не самодокументируемый, кейсов использования очень много(логики ведь куча). Поддержка —
Продолжать этот список можно очень долго, но я думаю смысл вы поняли. Эта штука гниет и в будущем может потащить за собой весь проект. Как с ними бороться поговорим отдельно. Сейчас вернемся к стейту.