useStyles() - Стили
Стилизация является важной частью дизайна веб-приложения. Qwik отвечает за загрузку информации о стилях при монтировании компонента. Используйте useStyles$(), чтобы указать Qwik, какой стиль должен быть загружен.
Почему не встроенные стили?
Простейший способ загрузить стили заключается в том, чтобы встроить информацию о стилях прямо в компонент следующим образом:
export const MyComponent = () => {
return (
<>
<style>.my-class { color: red; }</style>
Мой компонент
</>
);
}Проблема этого подхода заключается в том, что мы будем загружать стили дважды:
- Стили вставляются в HTML как часть SSR.
- Затем, когда компонент становится недействительным и его нужно перерисовать, стили загружаются снова, поскольку они встроены.
Необходимо загрузить стили независимо от компонента. Для этого и существует useStyles$(). Существует два сценария:
- Компонент рендерится на сервере, а стили вставляются в секцию
<head>страницы, как часть SSR.Добавление нового экземпляра компонента в приложение не требует загрузки стилей, так как они уже включены, как часть SSR.
- Первый рендер компонента происходит на клиенте. В этом случае новый компонент не будет иметь стилей в
<head>, так как компонент не был частью SSR.Добавление нового компонента, который не был частью SSR, требует загрузки и вставки стилей в секцию
<head>.
Пример
Этот пример содержит два компонента:
<Sibling>: Компонент<Sibling>предварительно рендерится на сервере, поэтому он имеет стили в<head>, так как они были добавлены во время SSR. Добавление дополнительных компонентов<Sibling>не требует загрузки стилей.<Child>: Компонент<Child>можно добавить, нажав на кнопкупереключить. Поскольку он не был частью предварительного рендера на сервере, у него нет стилей в<head>. Переключение<Child>требует, чтобы стили были загружены.