Оберточные компоненты и feature-компоненты имеют разные цели и роли в архитектуре приложения, поэтому их можно рассматривать отдельно.
Оберточные компоненты обычно используются для создания общего макета или представления страницы, объединяют несколько feature-компонентов вместе и могут иметь свои собственные состояния. Они обычно отвечают за организацию компонентов на странице, передачу данных между компонентами и другие аспекты управления приложением. Оберточные компоненты могут использовать feature-компоненты в качестве подкомпонентов, но сами по себе не являются feature-компонентами.
Feature-компоненты, с другой стороны, отвечают за конкретную функциональность или возможности приложения. Они обычно не имеют собственных состояний и зависят от передачи данных и обратных вызовов из оберточных компонентов или контейнеров.
Что касается использования состояний в widget-компонентах, то их использование напрямую может сделать код менее читаемым и поддерживаемым. Рекомендуется выносить логику состояний в отдельные компоненты, такие как контейнеры или логические компоненты, которые будут обрабатывать состояния и предоставлять специфические свойства и методы для widget-компонентов. Это может улучшить модульность кода и сделать его более переиспользуемым.