Делить ли React-компоненты на чистые и контейнерные?
Насколько адекватно мнение о том, что разделение React-компонентов на чистые(возвращают jsx) и контейнерные(обёртка для чистых, отвечают за логику) в 2021 году безнадёжно устарело? Недавно столкнулся с таким подходом - очень удивился. Опыта коммерческой разработки у меня нет, поэтому аргументировано возразить не смог, да и надо ли, если это так? В общем, коллеги, делите ли вы компоненты на чистые и контейнерные в своих проектах на React'e?
Я стараюсь делить. Другие не делят. На вопрос невозможно дать однозначный ответ. Зависит от проекта, команды и настроения того, кто пишет :)
Дополню ответ: Если есть какой-то участок кода, который нужно использовать повторно, очевидно лучшим решением будет вынести его в отдельный модуль / функцию и т.п.. Деление на чистые компоненты и компоненты с логикой по сути и делается для того, чтобы вынести повторяющийся код в отдельный компонент. Иногда проще скопировать простой участок кода и не заморачиваться, а иногда лучше вынести куда-то. Так что зависит от задач и особенностей проекта.
Для проектов с редаксом, в которых используется сторибук и есть компонентное тестирование, разделять желательно, чтобы не городить велосипеды с мокированием стора.
Если из выше упомянутого только редакс/мобх, стоит подумать, а нельзя ли эту логику унести из компонента в экшен.
Если ничего из этого нет, а логика сложная и "раздувает" компонент, можно вынести её в кастомный хук.