Vue.jsで動的にclassを設定する方法は?

Vue.jsで動的にclassを設定する方法は?

417

Vue.jsでは、動的にCSSクラスを設定する方法として、v-bind:classやclassディレクティブを使用します。以下にいくつかの例を挙げます。

1. 条件に応じたクラスの切り替え

<template>
  <div :class="{ active: isActive, 'text-large': isLarge }">
    動的なクラス設定の例
  </div>
</template>

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

上記では、isActiveがtrueの場合にactiveクラスが適用され、isLargeがtrueの場合にtext-largeクラスが適用されます。

2. 配列を使ったクラスの指定

<template>
  <div :class="[isActive ? 'active' : '', sizeClass]">
    配列を使ったクラス設定の例
  </div>
</template>

<script>
export default {
  data() {
    return {
      isActive: true,
      sizeClass: 'text-large',
    };
  },
};
</script>

isActiveの値によってactiveクラスが追加され、さらにsizeClassの値に基づいてtext-largeクラスが適用されます。

3. コンポーネントのデータやメソッドを使ったクラス設定

<template>
  <div :class="computeClass">
    メソッドを使ったクラス設定の例
  </div>
</template>

<script>
export default {
  data() {
    return {
      isActive: false,
      isLarge: true,
    };
  },
  computed: {
    computeClass() {
      return {
        active: this.isActive,
        'text-large': this.isLarge,
      };
    },
  },
};
</script>

computeClassという計算プロパティを使って動的にクラスを決定します。

4. クラスの追加に文字列を使用

<template>
  <div :class="'base-class ' + (isActive ? 'active' : 'inactive')">
    文字列を使ったクラス設定の例
  </div>
</template>

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

'base-class 'の後に条件によってactiveまたはinactiveが追加されます。

まとめ

オブジェクト形式: 条件付きで複数のクラスを適用する場合に便利。
配列形式: 複数のクラスを動的に切り替えたい場合に便利。
文字列形式: 簡単な操作が必要な場合に便利。
あなたのシナリオに応じて適切な形式を選んで使用してください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です