1、绑定class的几种方式数组
1.对象语法app
直接看例子:this
<div id="app3"> <div :class="{'success':isSuccess,'fail':isFail}">对象绑定class</div> //简单的处理直接使用数据来判断 <div :class="classes">计算属性绑定class</div> //当class的表达式过长或逻辑复杂时,使用计算属性 </div>
var app3 = new Vue({ el: '#app3', data: { isSuccess: true, isFail: false, error: false }, computed: { classes: function(){ return { success: this.isSuccess && !this.error, fail: this.isFail || !this.error } } } });
2.数组语法spa
直接看例子:code
<div id="app4"> <div :class="[successCls,failCls]">绑定多个class属性</div> //用于来绑定多个class属性 <div :class="[{'success':isSuccess},failCls]">绑定多个class属性一</div> //动态的判断添加那些class属性,是最经常使用的 </div>
var app4 = new Vue({ el: '#app4', data: { successCls: 'success', failCls: 'fail', isSuccess: true, isFail: false } });
<div id= ”app”>
<button :class= ”classes”></button>
</div>
var app = new Vue({ el: '#app', data:{ size : 'large', disabled : true }, computed: { classes: function(){ return [ 'btn', { ['btn-'+this.size]: this.size, ["btn-disabled"]: this.disabled } ] } } });
使用计算属性给元素动态设置类名,在业务中常常用到,尤为是在写复用的组件时,因此在开发过程当中,若是表达式较长或逻辑复杂,应该尽量地优先使用计算属性。component
3.在组件上使用对象
直接看例子:blog
<div id="app5"> <my-component :class="{'success': isSuccess}"></my-component> </div>
Vue.component('my-component',{ template: '<div class="fail">绑定组件class属性</div>' }); var app5 = new Vue({ el: '#app5', data: { isSuccess: true } });
这种用法仅适用于自定义组件的最外层是一个根元素,不然会无效,当不知足这种条件或须要给具体的子元素设置类名时,应当使用组件的props 来传递。开发
2、绑定内联样式io
直接看例子:
<div id="app6"> <div :style="{'color':color,'fontSize':fontSize+'px'}">文本</div> </div>
var app6 = new Vue({ el: '#app6', data: { color: 'red', fontSize: 14 } });
大多数状况下, 直接写一长串的样式不便于阅读和维护,因此通常写在data 或computed 里
<div id="app6"> <div :style="style">文本</div> </div>
var app6 = new Vue({ el: '#app6', data: { style: { color: 'red', fontSize: 14 } } });