![Vue.js从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/987/44509987/b_44509987.jpg)
上QQ阅读APP看书,第一时间看更新
5.3.1 绑定<html>中class的方式
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P95_13229.jpg?sign=1738911507-tfNDOkrTgxbUegcSno7In22RwLgX77zI-0-a7a851c47d5a3f7f0a10a4d874c33e90)
下面介绍绑定<html>中class的几种方式。Vue.js对其进行了修改,将以前使用的复杂性转变成简单、好学、易掌握。
1.对象语法
对象语法:可以传给v-bind:class一个对象,以动态地切换class。注意,v-bind:class指令可以与普通的class特性共存。
语法格式如下:
v-bind:class="{'className1':boolean1,'className2':boolean2}"
示例代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P95_53242.jpg?sign=1738911507-MIQuluQhWBWLgtsHveXxM3BQV8zb6Msf-0-4a3532cea87c5bd219f5d951be338310)
运行效果如图5-13所示。
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P96_53244.jpg?sign=1738911507-hLimThhFbTYIY75dubFQgu6ioeAlvmyu-0-9ec1025d95d7dfae447d02932a2c657e)
图5-13 绑定<html>中class的对象语法效果
提示:当单击颜色区域时,触发changeColor方法。数据的值发生变化时,class行间属性会被切换,如图5-13所示。
当看到v-bind:class="{'class1':yellow,'class2':red}"这句代码是不是就想到了直接使用一个对象替代这个键值对的写法,这当然也是可以的。代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P96_53245.jpg?sign=1738911507-TmwrMdCqDoxTIxbbNff3mK3ps2ksxLz9-0-05b8587818d193c056ef4fc45626b0ee)
虽然上述两种写法不同,但是达到的效果是相同的。这两种写法中,前一种是空间复杂度大一点,后一种是时间复杂度大一点,可以根据具体需求进行应用。
2.数组语法
数组语法:可以把一个数组传给v-bind:class,以应用一个class列表。
语法格式如下:
v-bind:Class="[Class1,Class2]"
示例代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P97_53247.jpg?sign=1738911507-MXb2e0sTW8NyBqUviqJaYH1HczRv1S0h-0-100825f9e57736c23d7db87dc7cc4bf8)
运行效果如图5-14所示。
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P98_53249.jpg?sign=1738911507-F9PDkoeDDLoLUk7Naaly4b94BIiKzrug-0-d0fa58c75418a9db6b53930c89af08dd)
图5-14 绑定<html>中class的数组语法效果
3.在组件上的使用
下面讲解<html>中class绑定在组件上的使用。
代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P98_53250.jpg?sign=1738911507-UmXssXt4nw3iSdDOyg8OCr75EFkUpkqp-0-24446cd2a9816054750adc48d10ab006)
运行效果如图5-15所示。
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P99_14042.jpg?sign=1738911507-0fUUp5TeSqrEAk0PAJ0rNXNXWVrxHmKr-0-70d910ab0da2f05b6958c187e51fc0f3)
图5-15 在组件上的使用运行效果
这种用法仅适用于自定义组件的最外层是一个根元素的情况,否则会无效。当不满足这种条件或需要给具体的子元素设置类名时,应当使用组件的props来传递。