Vue- 类与样式

Vue的类与样式除了普通的style形式外,还可以有对象语法、数组语法来表示类;
对象语法适合较多的class名或者动态的class
数组语法适合较少的class名

数组样式

如下面代码

...
<div :class="[a1,a2]">数组样式</div>
...
data() {
    return {
     a1:'text-1',
     a2:'text-2'
    };
  },

上诉代码div元素的class以一个数据表示,其中a1,a2在data中定义

检测DOM元素,可以看到样式生效了:


DOM1

对象样式

如下代码:

...
<div :class="{'text-1':b1}">对象样式</div>
...
data() {
    return {
     a1:'text-1',
     a2:'text-2',
     b1:true
    };

上述代码可以看到div元素的class是一个对象,其中text-1是依赖于b1存在的,在data中,b1的值为一个bool值,当b1为true的时候,div的class为text-1,当b1位false时,则class没有值;
检测DOM元素:

  • b1为true的时候:


    image.png
  • b1为false的时候:


    image.png

对象样式还可以表示成直接在class里面传入一个data定义的对象,如代码:

<div :class="obj">对象样式2</div>
#data里面的数据
 data() {
    return {
     a1:'text-1',
     a2:'text-2',
     b1:false,
     obj:{
       'text-1':true,
       'text-2':true
     }
    };

上述代码很好理解了,由于class传入的是对象obj,obj中text-1和text-2都为true,所以class样式为text-1 text-2
检测DOM元素,如图:


image.png

同理,如果text-1对呀的值为false,则class样式就为text-2。如果都为false的话,则clas中没有样式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。