Большинство из нас сбивает с толку синтаксис styled-components
, когда мы впервые пытаемся его изучить. Когда я впервые взглянул на него, у меня возникло много вопросов: как именно он работает? Использует ли он какой-то новый объект JavaScript, о котором я не знаю? Например, давайте сделаем кнопку с красным текстом.
const Button = styled.button` color : red; `
Что именно здесь означает "styled.button"? Это новый объект JavaScript? Оказывается, "styled.button" - не что иное, как функция. Я был полностью сбит с толку, когда узнал, что это функция. Как это работало? Именно тогда я узнал о тегированных шаблонных литералах
Стилизованные компоненты использовали тегированные литералы шаблона. В JavaScript, когда мы передаем шаблонный литерал в качестве аргумента функции, мы можем опустить круглые скобки. Эта функция известна как тегированные литералы шаблона.
Например:
function print(string){ console.log(string.toString()) } //normal function call print("Hello World") // logs "Hello World" // function call with tagged templates print`Hello World` // logs "Hello World"
Оба вызова функций одинаковы, но синтаксис отличается. Второй - это то, что мы называем тегированными шаблонными литералами.
Заключение
Так работают стилизованные компоненты, и это довольно легко понять, если мы разберёмся с тегами шаблонов. Я не углублялся в шаблоны с тегами, поскольку это обширная тема, но этого понимания должно быть достаточно для работы со стилями-компонентами.
Больше контента на plainenglish.io