Vue 绑定class和style方式

127 阅读1分钟

1.绑定 Class

1.1 直接方式
<div v-bind:class="active"></div>
//active为变量

应用场景:类名不确定是哪个

1.2 绑定对象方式
<div v-bind:class="{ active: isActive }"></div>
//active为字符串

class是否为active取决于isActive的真假

应用场景:类名确定,但不确定是否存在

1.3 以上两种方式结合

class不会冲突

<div
  class="static"
  v-bind:class="{ active: isActive, 'text-danger': hasError }"
></div>
//绑定对象方式中带有连字符的字符串需要加引号 'text-danger'
data: {
  isActive: true,
  hasError: true
}

结果为

<div class="static active text-danger"></div>
1.4 绑定数组方式
<div v-bind:class="[activeClass, 'classA']"></div>
//"[这里即为javascript语法区域],故activeClass为变量,classA为字符串"
data: {
  activeClass: 'active',
}

结果为

<div class="active classA"></div>

1.5 组件上绑定

自定义组件内使用和在组件的根元素上绑定不会冲突,可以叠加

2.绑定 Style

2.1 直接方式
<div v-bind:style="styleObject"></div>
data: {
  styleObject: {
    color: 'red',
    fontSize: '13px'
  }
}
2.2 绑定对象方式

绑定的是一个 JavaScript 对象

<div v-bind:style="{ color: myColor, fontSize: mySize + 'px' }"></div>
data: {
  myColor: 'red',
  mySize: 30
}
2.3 绑定数组方式

可以将多个样式对象应用到同一个元素上

<div v-bind:style="[stylesOne, stylesTwo]"></div>

参考于Vue官方文档:cn.vuejs.org/v2/guide/cl…