Использование CSS-модулей в React

Пример использования CSS-модулей и способы их внедрения в ваше приложение React

Фото Натана да Силвы на Unsplash

Если вы относительно новичок в CSS, возможно, вы столкнулись или не столкнулись со значительной проблемой, которая возникает при расширении стиля приложения - поскольку правила CSS следуют глобальной области видимости , два или более классов с одинаковым именем будут сталкиваться. Обработка нескольких таблиц стилей и отслеживание соглашений об именах в файлах CSS может оказаться обременительным, и если вы не будете достаточно осторожны, вы обязательно столкнетесь с некоторыми конфликтами из-за идентичных имен классов.

Модули CSS могут решить эти ошибки, которые могут появиться, особенно по мере роста вашего приложения. В конечном итоге они позволяют нам использовать одно и то же имя класса в нескольких файлах без ошибок селектора и правил, определяя по умолчанию имена классов локально .

Модуль CSS - это просто .cssфайл, в котором классы действуют аналогично локальным переменным в Javascript. Это инструмент, который делает каждый класс уникальным, добавляя в его имя хэш.

Создание модуля CSS

Если вы используете create-react-app, сделать CSS-модуль для компонента относительно просто. Следуйте стандартному соглашению об именах для файла css, но вставьте moduleперед ним .css, например:[name].module.css

Чтобы увидеть пример, вот мой Task.module.cssфайл в простом приложении с делами:

Если у меня есть другой boxкласс в другом компоненте, который имеет другой цвет, эти правила не будут конфликтовать, поскольку модули применяют локальную область видимости .

Чтобы импортировать модуль CSS в соответствующий компонент, импортируйте таблицу стилей модулей css как stylesили [name]Styles:

В JSX используйте определенный класс CSS как свойство className следующим образом:

Отсюда вы можете добавить столько других модулей CSS, сколько захотите, просто не забудьте импортировать каждый под другим именем.

С помощью модулей CSS вы можете создавать переносимые, повторно используемые файлы CSS, и вам больше не нужно беспокоиться о конфликтах имен селекторов или правилах, влияющих на стили других компонентов.

Часто, сталкиваясь с решением стилизовать приложения React, разработчики разрываются между использованием модулей CSS или библиотеки CSS-in-JS ( инструмент для абстрагирования CSS на уровне компонентов ), такой как styled-components, Emotion или styled-jsx. Поскольку библиотеки CSS-in-JS становятся все более широко используемыми и распространенными для декларативного описания стилей, я заметил, что многие по-прежнему верят, что CSS-модули - это правильный путь, особенно из-за их модульных и многоразовых качеств, которые делают работу со стилями намного более удобной. бесшовные.

Suggested posts

Как избежать разрушительных последствий инсульта: уроки семейного опыта.

Как избежать разрушительных последствий инсульта: уроки семейного опыта.

Введение Инсульт — это неотложная медицинская помощь, которая может случиться с кем угодно в любое время. Это происходит, когда приток крови к части мозга нарушается, что приводит к внезапной потере функции мозга.

Таблица стилей для кофе: кофе как цвет

В этой глупой инфографике я представляю, как можно было бы выразить кофе, если бы он был представлен аналогично цветам CSS.

Таблица стилей для кофе: кофе как цвет

Говорят, разработчики могли работать только за кофе. Я не думаю, что это правда (но, может быть, и не слишком далеко).

Related posts

Архив этой угрозы: Том 7 Черный Баста

Архив этой угрозы: Том 7 Черный Баста

В современном взаимосвязанном мире угроза кибератак более распространена, чем когда-либо. Киберпреступники и государственные деятели постоянно стремятся использовать уязвимости и украсть ценные данные, подвергая организации любого размера значительному риску.

Поиск информации о доменных именах

Отрывок из книги «Маленькие программные инструменты Sharp» Брайана П. Хогана.

Поиск информации о доменных именах

Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.

Убийство Джордана Нили и проблема «патриотического» расизма

Могут ли США сделать важный шаг и не приравнивать расистское поведение к тому, чтобы быть хорошим американцем?

Убийство Джордана Нили и проблема «патриотического» расизма

[Предупреждение: в этом эссе есть снимки экрана, на которых люди восхваляют убийцу Джордана Нили.] Сотрудники правоохранительных органов наконец — и, возможно, неохотно — предъявили обвинение в этом убийстве Дэниелу Пенни, человеку, который душил Джордана Нили, пока тот не умер.

Первая детская книга о кайфе

Первая детская книга о кайфе

(Предупреждение — это сатира, предназначенная для радостной подрывной деятельности — определенно не для детей) Вы видели, как ваши мама и папа прячутся на кухне и курят эти вонючие сигареты. Они говорят вам.