Как использовать стилус для доступа к переменным javascript в файле vue?

Например:

<script>
    export default {
        data() {
            return{
                varinjs: 1,
            }
        }
    }
</script>
<style lang = "stylus">
    varincss = varinjs

    body
      if varincss  == 0
        background-color red
      else varincss == 1
        background-color blue
</style>

Есть ли способ получить доступ к переменным javascript в css? можно использовать sass или меньше, но я бы нравится стилус намного больше.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
11
0
2 576
2

Ответы 2

Я знаю, что это не ответ на «этот» вопрос (я хотел прокомментировать), но я постараюсь предложить альтернативное решение.

Stylus поддерживает встроенную функцию json(path[, options]), что означает, что вы можете поместить все переменные в файл JSON и передать их как в файлы JS, так и в файлы Stylus.

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

Думаю, это очень хороший ответ. Он не дает прямого ответа на вопрос, но предлагает хорошее направление решения проблемы.

Daniele Orlando 24.10.2018 15:14

Для этого вы можете использовать настраиваемые свойства CSS.

Свяжите с ними переменные стилуса и просто обрабатывайте изменения в JavaScript.

<script>
  export default {
    data () {
      return {
        theme: { background: '#ff0000' }
      };
    },
    watch: {
      'theme.background': { immediate: true, handler: 'applyVariables' }
    },
    methods: {
      applyVariables () {
        const scope = document.documentElement.styles;
        scope['--theme-background'] = this.theme.background;
      }
    }
  };
</script>

<style lang = "stylus">
  theme-background = var(--theme-background, #ff054a);
  // The first argument is variable name and second is placeholder value.

  .theme-button
    background-color: theme-background
</style>

Справочник по настраиваемым свойствам CSS на MDN

Другие вопросы по теме