Vue中Class与Style如何动态绑定
Class 可以通过对象语法和数组语法进行动态绑定:
- 对象语法:
<div v-bind:class="{ active: isActive, 'text-danger': hasError }"></div>
data: {
isActive: true,
hasError: false
}
- 数组语法:
<div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>
data: {
activeClass: 'active',
errorClass: 'text-danger'
}
Style 也可以通过对象语法和数组语法进行动态绑定:
- 对象语法:
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
activeColor: 'red',
fontSize: 30
}
- 数组语法:
<div v-bind:style="[styleColor, styleSize]"></div>
data: {
styleColor: {
color: 'red'
},
styleSize:{
fontSize:'23px'
}
}
- 定义变量法:
通过判断一个条件去改变样式在项目中会经常遇到,此时我们可以适应给想要绑定的class定义一个变量进行动态切换class。
<div class=“className” :class={newclass : variable }>
我们可以将这个variable 在我们的data里面设置成false(默认不显示)
data () {
variable :false
}
之后给newclass 编写我们想要动态变动的样式
.className{
color: red;
}
.newclass {
color: black
}
现在是因为newclass 是定义的变量为Flase所以样式为className定义的内容
在我们js内容部分:
if(条件){
this.variable =true
}
即可通过条件来动态的切换样式。