在Vue.js 2.0中,你可以使用 v-bind 指令来动态绑定 HTML 元素的 class 和 style。这使得你能够根据数据的状态动态地添加或移除类,以及应用动态的样式。

Class 绑定

对象语法

通过对象语法,你可以根据条件为元素添加或删除类。
<div v-bind:class="{ active: isActive, 'text-danger': hasError }"></div>

在上面的例子中,active 类会在 isActive 为 true 时添加,text-danger 类会在 hasError 为 true 时添加。

数组语法

你还可以使用数组语法,将多个类应用到同一个元素。
<div v-bind:class="[activeClass, errorClass]"></div>

在这个例子中,activeClass 和 errorClass 变量的值会被当作类名应用到该元素。

条件语法

在条件语法中,你可以直接绑定一个对象或数组,也可以在计算属性中返回一个对象或数组。
<div v-bind:class="getClassObject()"></div>
var app = new Vue({
  el: '#app',
  data: {
    isActive: true,
    hasError: false
  },
  methods: {
    getClassObject: function() {
      return {
        active: this.isActive,
        'text-danger': this.hasError
      };
    }
  }
});

Style 绑定

对象语法

使用对象语法,你可以动态地设置元素的内联样式。
<div v-bind:style="{ color: textColor, fontSize: fontSize + 'px' }"></div>

在这个例子中,textColor 和 fontSize 变量的值会被当作样式属性应用到该元素。

数组语法

数组语法允许你将多个样式对象应用到同一个元素。
<div v-bind:style="[baseStyles, extraStyles]"></div>

在这里,baseStyles 和 extraStyles 变量的值会被当作样式属性应用到该元素。

自动添加前缀

如果你使用了 autoprefixer,Vue.js 会自动为内联样式添加相应的浏览器前缀。
<div v-bind:style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

在上述例子中,Vue.js 会根据浏览器自动添加相应的前缀。

总的来说,Vue.js 的 v-bind 可以方便地帮助你根据数据状态动态地管理元素的类和样式。


转载请注明出处:http://www.zyzy.cn/article/detail/4799/Vue