Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
На мой взгляд, лучшим решением является последний подход, т.е. CSS-в-JS. Он выглядит самым логичным с точки зрения описания структуры (разметки), внешнего вида (стилей) и логики (скрипта) компонента в одном файле — получаем нечто вроде Все-в-JS.
Не лучше. Как обычно, есть разные trade-off.
Главные плюсы — упорядоченность через код (можно подключить линтер, TS, и всё вот это) и тьюринг-полный язык действий над стилями.
Главные минусы — вендор-лок (в лучшем случае "ванильный" css можно будет отдать внутрь css-in-js решения как портянку plaintext, см. emotion, в худшем, как в styled-components, нельзя будет и этого) и всегда добавочные тормоза в обработке этого всего (впрочем, не всегда это имеет значение и вообще можно увидеть даже замерами).
5 подходов к стилизации React-компонентов на примере одного приложения