操作元素的 class 列表和内联款式是数据绑定的一个常见需要。因为它们都是 attribute,所以咱们能够用 v-bind 解决它们:只须要通过表达式计算出字符串后果即可。不过,字符串拼接麻烦且易错。因而,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的加强。表达式后果的类型除了字符串之外,还能够是对象或数组。
对象语法
<script>
export default {
data() {
return {
test57: 'hellokugou',
isActive: true
};
},
};
</script>
<template>
<!--first 搁置字符 -->
<div>
<p class="active">{{ test57 }}</p>
<!--second 搁置对象 -->
<p :class="{active:isActive}"> hello </p>
<button @click="isActive=!isActive">change_active</button>
</div>
</template>
<style>
.active{
font-size: 80px;
color: blue;
}
</style>
对象
<script>
export default {
data() {
return {
test57: 'hellokugou',
isActive: true,
error:{},
classObj:{
active: true,
helloWorld: true,
}
};
},
computed:{
chassObjCom:function (){
return{
active:this.isActive && !this.error,
helloWorld: this.error
}
}
}
};
</script>
<template>
<!--first 搁置字符 -->
<div>
<p class="active">{{ test57 }}</p>
<!--second 搁置对象 -->
<p :class="{active:isActive}"> hello </p>
<!--和一般class一起不会笼罩 -->
<p :class="{active:isActive}" class="helloWorld"> hello </p>
<p :class="classObj">{{ test57 }}</p>
<button @click="isActive=!isActive">change_active</button>
<p :class="chassObjCom">hellokugou computed</p>
</div>
</template>
<style>
.active{
font-size: 80px;
color: blue;
}
.helloWorld{
background: aqua;
}
</style>
发表回复