绑定class属性的格式是   v-bind:class = "语句",  可以缩写为  :class ="语句" 。class属性是可以有多个的,在"  "内可以有多种不同的情况。下面介绍在"  "写入的不同情况。


目录

一、"  "内是vue对象内存在的对象

二、"  " 内为  [  ] 数组

三、 "  "内为 {   }  json对象


一、"  "内是vue对象内存在的对象

        :class = " 语句" , 语句中传入的是vue建立的变量,计算属性,函数等的时候,就会把vue中所对应的对象的值替换成class的值。传入的是字符串'   '的话就直接作为class属性值。

        这种情况不能绑定一个class值,并且只能通过绑定的class的变量的值修改才能改变class属性的值。

        代码实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			.active{
				color:red;
			}
		</style>
		<script src="js/vue.js"></script>
	</head> 
	<body>
		<div id="app">
			<div :class="c1">{{c1}}</div>
		</div>
		<script>
			const app = new Vue({
				el:"#app",
				data:{ 
					c1:"active"
				},
				
			});	
		</script>
	</body>
</html>

         页面效果:

二、"  " 内为  [  ] 数组

        当我们想绑定多个class属性值时,就可以在"  "内传入 [  ]  数组。数组内的值是vue内的对象变量名。如果带有'  '则传入的就是实际值,不会被替换。

        代码实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			.active{
				color:red;
			}
			.font{
				background-color:blue;
			}
		</style>
		<script src="js/vue.js"></script>
	</head> 
	<body>
		<div id="app">
			<div :class="[c1,c2,'c3']">{{c1}}</div>  
		</div>
		<script>
			const app = new Vue({
				el:"#app",
				data:{ 
					c1:"active",
					c2:"font",
				},
				
			});	
		</script>
	</body>
</html>

        页面效果:  显然标签属性会是 class="active font c3"; 

三、 "  "内为 {   }  json对象

        当我们想绑定多个class属性值,设置的每个class属性值是已经给出的。可以设置绑定的属性值时决定要还是不要,比如 class = "n1 n2", 我们通过vue可以将设置成class = "n1",但不能通过vue直接设置成class="n3"  ; 

        我们就要用到 {  } 对象来表达。只有每一个设置的class属性值对应的一个boolean类型的值来决定该标签是否拥有该属性值,但对应的boolean值是true才给class属性赋值。

        格式为:

该类型的格式为   :class = " { n1 : b1 , n2:  b2  }" ;

注意:

// b1,b2是boolean类型

//  n1,n2不在被vue对象替换,就是纯文本 !无论加不加" ", 如上述 ,假设b1 = true, b2=true。则在页面渲染时, 该标签属性   class = " n1  n2"

         代码演示:  

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			.active{
				color:red;
			}
			.font{
				background-color:blue;
			}
		</style>
		<script src="js/vue.js"></script>
	</head> 
	<body>
		<div id="app">
			<div :class="{active:isTrue1,font:isTrue2}">{{c1}}</div>
		</div>
		<script>
			const app = new Vue({
				el:"#app",
				data:{ 
					active:"active1",
					font:"font1",
					isTrue1:true,
					isTrue2:false
				},
				
			});	
		</script>
	</body>
</html>

        页面效果:果不其然,  :class="{active:isTrue1,font:isTrue2}"   中active,font并没有被vue替换,而是直接当成class属性值 !

 

        

Logo

前往低代码交流专区

更多推荐