vue动态绑定css的几种不同语法形式

1:对象语法

<div id="review-modal" class="review-modal dialog-panda-skip" :class="{ hidden: !isModalShow }">

语法::class=”{ 类名1: 布尔值1, 类名2: 布尔值2 }”

对象的「键」是要控制的类名,「值」是一个布尔值(true/false),决定该类是否添加:

若 !isModalShow 为 true → 给元素添加 hidden 类;

若 !isModalShow 为 false → 不添加 hidden 类。

适用场景:需要独立控制多个类的添加 / 移除(比如同时控制 hidden 和 active 两个类),例如:

<!-- 同时控制 hidden 和 active 两个类,互不影响 -->
:class="{ 
  hidden: !isModalShow,  // hidden 类由 isModalShow 控制
  active: isCurrent     // active 类由 isCurrent 控制
}"

2:表达式字符串

<span v-for="star in 5"
      :key="star"
      :data-value="star" class="star"
      :class="product.rating >= star ? 'active' : ''"
      @click="setRating(product.id, star)">
  ★
</span>

语法::class=”条件 ? ‘类名1’ : ‘类名2/空'”

通过「三元运算符」这个表达式,动态返回一个具体的类名字符串(或空字符串)。

条件成立(product.rating >= star 为 true)→ 返回 ‘active’ → 给元素添加 active 类;

条件不成立 → 返回 ”(空字符串)→ 不添加任何类。

适用场景:需要在「“加某类” 和 “不加类”」之间二选一,或在「两个类」之间切换(比如 :class=”isRed ? ‘red’ : ‘blue'”)。