JSS — это относительно новый инструмент для стилизации компонентов. Вследствие этого JSS еще не так сильно распространен . Но его репозиторий на сайте GitHub собрал уже 6.3k звезд на момент написания статьи. Он использует JavaScript для декларативного способа описания правил CSS, помогает в их переиспользовании и избежании конфликтов. Он может компилироваться в браузере, на стороне сервера или во время сборки в Node.js. Он легко интегрируется в другие JS-фреймворки. React-JSS это его адаптация для библиотеки React.js.
Эта адаптация использует React-хуки для своего использования. Это дает дополнительные преимущества, такие как:
Рассмотрим подробно пример ниже:
import React from 'react' import {render} from 'react-dom' import injectSheet, { ThemeProvider } from 'react-jss' const styles = (theme) => ({ wrapper: { padding: 40, background: theme.background, textAlign: 'center' }, title: { font: { size: 40, weight: 900, }, color: props => props.color }, link: { color: theme.color, '&:hover': { opacity: 0.5 } } }) const Comp = ({ classes }) => ( <div className={classes.wrapper}> <h1 className={classes.title}>Hello React-JSS!</h1> <a className={classes.link} href="cssinjs.org/react-jss" target="_blank" > See docs </a> </div> ) const StyledComp = injectSheet(styles)(Comp) const theme = { background: '#aaa', color: '#24292e' } const App = () => ( <ThemeProvider theme={theme}> <StyledComp color="red"/> </ThemeProvider> ) render(<App />, document.getElementById("root"))
В приведенном выше коде, который немного напоминает styled-components, мы импортируем injectSheet и ThemeProvider из библиотеки react-jss. ThemeProvider — это компонент высшего порядка в React, который передает объект theme вниз по дереву с помощью контекста. Этот объект содержит корневую тему компонента.
А injectSheet используется для внедрения стилей в основной компонент Comp. С помощью этой функции создается уже стилизованный элемент StyledComp. Который и используется в шаблоне.
В итоге мы увидим в браузере такой результат:
Полученный результат
Вот здесь можно испытать React-JSS в действии.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…