Есть ли лучший способ применить тему с модулями CSS в приложении React?

#javascript #reactjs #css-modules

#javascript #reactjs #css-модули

Вопрос:

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

   import styles from './NominationsList.module.scss'
  //......
  <p
    className={`${styles.nominationsHeader} ${
      isDarkMode ? styles.nominationsHeaderDark : styles.nominationsHeaderLight
    }`}
  >
   Some text here...
  </p>
 

Даже если это работает, должен быть лучший способ сделать это. Я был бы признателен за любой совет. Спасибо.

Ответ №1:

Ряд библиотек, таких как MaterialUI, предоставляют механизмы для управления темами, но если вы не используете ни одну из них, я бы порекомендовал вам проверить хук useTheme по адресу https://usehooks.com/useTheme /.

В принципе, вы бы определили их в темном режиме и тему в светлом режиме один раз, указали текущую с помощью useTheme(), а затем ссылались на классы темы по мере необходимости без какой-либо дополнительной условной логики.

Комментарии:

1. Не OP, но поддерживает ли useTheme изменение классов для тем? Для людей, которые используют Bootstrap, Tailwind и т. Д., Это может быть лучше, чем разрешить изменение css.

2. это интересный подход. Спасибо.