Здравствуйте! Мы бы не стали разделять на плохие и хорошие. Все зависит от требований бизнеса (целей проекта). Если проект простой, то при необходимости реализации глобального состояния можно использовать
Context.
Среди популярных библиотек хотелось бы отметить Redux (+ Redux Toolkit), MobX, и упомянули бы ReAtom.
Мы же реализовали управление состоянием приложения с помощью собственного скрипта, написанного с использованием RxJS. Этот путь более сложный, но дает полное понимание того - какие данные (тип), как и где используются.