Как правильно задать несколько классов элементу?

В Vue.js есть несколько способов задать несколько классов элементу.

Первый способ - использовать директиву v-bind:class. Вы можете передавать в директиву v-bind:class объект, в котором ключи представляют классы, а значения - условия, при которых соответствующий класс будет применен. Например:

<template>
  <div v-bind:class="{ active: isActive, 'text-green': isGreen }">Элемент</div>
</template>

<script>
export default {
  data() {
    return {
      isActive: true,
      isGreen: false
    }
  }
}
</script>

В этом примере класс active будет применяться, если isActive имеет значение true, а класс text-green будет применен, если isGreen имеет значение true.

Второй способ - использовать вычисляемое свойство. Вы можете создать вычисляемое свойство, которое будет возвращать строку с классами, которые нужно применить. Например:

<template>
  <div :class="getClassNames()">Элемент</div>
</template>

<script>
export default {
  data() {
    return {
      isActive: true,
      isGreen: false
    }
  },
  methods: {
    getClassNames() {
      let classNames = [];
      
      if (this.isActive) {
        classNames.push('active');
      }
      
      if (this.isGreen) {
        classNames.push('text-green')
      }
      
      return classNames.join(' ');
    }
  }
}
</script>

В этом примере метод getClassNames возвращает строку с классами, указанными в зависимости от значений isActive и isGreen. Метод join(' ') объединяет классы в строку, разделенную пробелами.

Третий способ - использовать вложенный массив. Вы также можете использовать массив классов, чтобы добавить несколько классов элементу. Например:

<template>
  <div :class="[isActive ? 'active' : '', isGreen ? 'text-green' : '']">Элемент</div>
</template>

<script>
export default {
  data() {
    return {
      isActive: true,
      isGreen: false
    }
  }
}
</script>

Здесь классы добавляются в массив с условными выражениями. Если условие истинно, то класс добавляется к элементу, иначе - добавляется пустая строка.

Независимо от выбранного способа, вы можете задать несколько классов одновременно, и их условия будут автоматически применяться при изменении соответствующих данных в компоненте Vue.js.