vue中的class绑定

本文将介绍如何动态绑定html元素的class与style。

首先绑定class的方法有:
1.对象语法绑定

 <div class='sortList'>
 	<ul>
    	<li v-for="item in list">
    		<i v-bind:class="class1:class1Data,class2:class2Data">font-size</i>{{item.sort}}
    	</li>
 	</ul>
 </div>

data如下:

 data(){
	return{
		class1Data:true,
		class2Data:false, 
	}
 }       

如上的操作绑定语法的效果是:只能操控class1和class2是否显示,也就是说class1和class2是最终会显示在网页上的属性名,绑定的class1Data和class2Data只能绑定一个布尔值,只是用来判断最终是否显示class1和class2这两个属性。

举个例子:如果我想添加名为title的这类名,则我就要写:

<div v-bind:class="title:titleData">

就是说这个类名本身还是要写在元素中的,后面titleData才是与data中动态绑定的数据,只能控制最终是否显示title这个类名。这里如果titleData=false的话,最终这个div将不会有title这个类名。

对象语法绑定还可以这样写:

            <div class='sortList'>
                <ul>
                    <li v-for="item in list">
                    	<i v-bind:class="classObject">font-size</i>{{item.sort}
                    </li>
                </ul>
            </div>

data如下:

data(){
	return{
		classObject:{
			className1:true,
			className2:false,
		}
	}
}

只不过是将对象的具体内容全写在了data里面,跟前面的写法本质相同。效果也是一样的。

绑定一个返回对象的计算属性:
模板部分完全与前面一样:

            <div class='sortList'>
                <ul>
                    <li v-for="item in list">
                    	<i v-bind:class="classObject">font-size</i>{{item.sort}
                    </li>
                </ul>
            </div>

computed部分如下:

computed: {
  	classObject: function () {
    	return {
      		className1: true,
      		className2: false,
	}
}

总而言之,对象语法绑定只能用布尔值控制类名是否最终显示。

2.数组语法
模板部分:

           <div class='sortList'>
                <ul>
                    <li v-for="item in list">
                    	<i v-bind:class="[iconfont,iconName]">font-size</i>{{item.sort}}
                    </li> -->
                </ul>
            </div>

data部分:

data(){
	return{
		iconfont:'iconfont',
		iconName:'icon-bussiness-man',
	}
}          	

则最后class里面会显示iconfont和icon-bussiness-man连个类名。
数组语法能直接动态绑定具体的数据。

更多信息可以参考vue官方文档:https://cn.vuejs.org/v2/guide/class-and-style.html#ad

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值