это одно и то же. чтобы нарисоваться кнопка должна знать какого она цвета. реакт пытается убрать сложность "изменений", он просто рисует все по стейту
Так вот, цвет - это представление, а зачем этот цвет нужен - это логика. Грань тонкая но она есть и при должном приложении мозга преставление от логики нормально отделяется. Проблема только с тем, что эта граница не совпадает с границей между CSS и JS.