Одна из ключевых проблем, с которой я столкнулся в своей предыдущей работе, связана с действиями, которые должны изменить состояние двух отдельных ветвей дерева компонентов. При использовании явной установки состояния приходится делать всевозможные искажения, передавая обратные вызовы глубоко в дерево, где их релевантность сомнительна, и отвлекая внимание на то, что там делает ваш компонент. В конце концов, все заканчивается состоянием спагетти  — вернитесь к своему коду через 4 месяца, и вы понятия не имеете, как он работает. Представленный избыточный шаблон проектирования означает, что действие, запускающее обновление состояния, не должно знать, где происходит изменение состояния. Это также означает, что место, где изменяется состояние, также легко найти, и поэтому документация очевидна через 4 месяца. Компоненты отображают вещи. Это легко тестировать. Состояние подключается к реквизиту очень просто. Там очень мало места для глупых спагетти.

Для простых проектов вообще нет смысла использовать какой-либо фреймворк. Просто напишите это и зевните.

Но любой сложный проект выиграет от такого разделения задач, если вы хотите, чтобы его можно было поддерживать даже через 6 месяцев.