操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。
<div id="app">//绑定class<!--对象class :class是v-bind:class的缩写 :style是v-bind:style的缩写--><div :class="{'success':isSuccess,'fail':isFail}">对象绑定class</div><div :class="classes">计算属性绑定class</div><!--数组class --><div :class="[successCls,failCls]">直接绑定多个class属性</div><div :class="[{'success':isSuccess},failCls]">动态的判断添加那些class属性,是最常用的</div><button :class= "classesBtn">计算属性绑定</button>//绑定内联样式<div :style="{'color':color,'fontSize':fontSize+'px'}">文本</div><div :style="style">文本,是最常用的</div></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script type="text/javascript">var vm = new Vue({el : "#app",data : {//绑定classsuccessCls: 'success',failCls: 'fail',isSuccess: true,isFail: false,error: false,size : 'large',disabled : true,//绑定内联样式color: 'red',fontSize: 14,style: {color: 'red',fontSize: 14}},computed: {classes: function(){return {success: this.isSuccess && !this.error,fail: this.isFail || !this.error}},classesBtn:function(){return ['btn',{['btn-'+this.size]: this.size,["btn-disabled"]: this.disabled}]}}});</script><style>.success{color:#00FF00;}.fail{background:#FF0000;}</style>
