Выбор ответа Middle Архитектура CSS обновлено

Минус рантайм CSS-in-JS

Вопрос

В чём главный минус рантайм CSS-in-JS (styled-components, Emotion) по сравнению с CSS Modules?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Стили генерируются в рантайме: лишняя работа JS при рендере и сложности с RSC. Рантайм-библиотека в браузере сериализует стили, считает хеши и вставляет правила, это расход при рендере.

Варианты ответа

  1. Стили генерируются в рантайме: лишняя работа JS при рендере и сложности с RSCправильный ответ
  2. Нельзя использовать медиазапросы и псевдоклассы, только статичные стили
  3. Нельзя менять стили в зависимости от пропсов компонента во время работы
  4. Имена классов конфликтуют между компонентами, если совпадают названия

Разбор

Рантайм-библиотека в браузере сериализует стили, считает хеши и вставляет правила, это расход при рендере. Ей нужен клиентский контекст, поэтому в React Server Components она работает только в клиентских компонентах. Медиазапросы и стили от пропсов как раз её сильная сторона. Имена классов она генерирует уникальными, конфликтов нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме