Vue如何实现Class 与 Style 如何动态绑定?

92 阅读1分钟

可以使用 v-bind 指令来绑定 Class 或 Style,从而实现它们的动态绑定。

Class 可以通过对象语法和数组语法进行动态绑定:

1、Class 的动态绑定对象语法:

可以通过以下形式来将一个对象绑定到 v-bind:class 上,这个对象的属性名将会决定是否应用类名,属性值为布尔值,用于决定是否应用该类名:

<div v-bind:class="{ active: isActive, 'text-red': isRed }"></div>

其中,isActiveisRed 是 Vue 实例定义的变量,根据这些变量的值,对应的类名将被动态地添加或移除。

2、Class 的动态绑定数组语法:

还可以通过数组方式来绑定多个类名,Vue 会自动将数组中的每一项转换为字符串,然后将它们拼接在一起作为最终的类名:

<div v-bind:class="[isActive ? 'active' : '', isRed ? 'text-red' : '']"></div>

3、Style 的动态绑定对象语法

可以通过以下形式来将一个对象绑定到 v-bind:style 上,这个对象中的键对应 CSS 属性名,值为对应的属性值:

<div v-bind:style="{ color: textColor, fontSize: fontSize + 'px' }"></div>

在这个例子中,textColorfontSize 是 Vue 实例中的两个变量,它们的值将影响这个元素的文本颜色和字体大小。注意,在绑定样式时,除了 px 之外,不能省略单位。

4、Style 的动态绑定数组语法

除此之外,还可以通过对象数组或字符串方式来绑定多个样式,其语法和使用方法与绑定多个类名类似。

<div v-bind:style="[styleObject1, styleObject2, styleString]"></div>

在这个示例中,styleObject1styleObject2styleString 可以是样式对象或样式字符串。这些样式将会合并应用到元素上。