Какой самый оптимальный способ предложить изменение CSS-темы приложения? - PullRequest
0 голосов
/ 22 октября 2019

Итак, во-первых, я не использую <style> в своих компонентах, я очень увлечен выделенными файлами для стилевого оформления CSS. И приложение сделано в Vue CLI environemnt. В этом контексте мне интересно, каковы мои лучшие варианты, чтобы разрешить несколько тем CSS?

Я могу придумать следующие вещи:

  1. Связать тему по умолчанию в теге <link> моего index.html и затем Vueзамените это выбранной темой, выполнив манипуляции с DOM. Недостатком здесь является то, что при начальной загрузке приложения на мгновение может появиться неправильная тема, если только вы не используете стандартную
  2. Импортирование темы с require() в файле main.js, что может вызватьтот, который вы выбрали (прямо из начальной загрузки), который будет сохранен в cookie или localStorage. Недостатком здесь является то, что (я думаю?) Изменение темы потребует перезагрузки страницы, чтобы увидеть изменения.
  3. Добавление объявления класса с именем темы (например, .light-theme, .dark-theme) в качестве родительского элемента к каждому отдельному объявлению в моих темах, а затем атрибут my class в элементе #app определяет, какойТема, которую я использую, так что я могу изменить тему, выполнив <div id="app" :class="`theme-${themeName}`">. Здесь недостатком будет то, что мой связанный CSS-файл будет намного больше или сложнее.

Есть ли четвертый способ, который бы разрешил все эти проблемы? Значение:

  1. Загружать правильную тему сразу после обновления,
  2. Не требует перезагрузки
  3. Не иметь все темы в одном файле?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...