3.动态绑定属性
1.基本使用
v-bind用于动态绑定属性,在实际使用中我们通常会使用语法糖写法,省略v-bind
<!-- aHref=http://www.baidu.com,以下两种写法完全等同-->
<a href="http://www.baidu.com">百度一下</a>
<a v-bind:href="aHref">百度一下</a>
<!-- 语法糖写法,省略v-bind-->
<a :href="aHref">百度一下</a>
2.动态绑定class
2.1.对象语法
动态绑定class属性时可传入一个对象参数,对象参数的格式是:
{
className: bool //className:class名,bool:是否使用这个class
}
例:
下列html代码表示使用active类,不使用line类
<h2 class="title" :class="{active:true,line:false}">{{message}}</h2>
2.2.数组语法
动态绑定class属性也可以传入一个数组参数,数组元素表示要使用的class.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!-- 直接使用active和line类-->
<h2 :class="['active', 'line']">{{message}}</h2>
<!-- 解析之后为['aa','bb']-->
<h2 :class="[active, line]">{{message}}</h2>
<!-- 调用getClasses()之后为['aa','bb']-->
<h2 :class="getClasses()">{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: '你好',
active: 'aa',
line: 'bb'
},
methods:{
getClasses:function () {
return [this.active, this.line]
}
}
})
</script>
</body>
</html>
3.动态绑定style
3.1对象语法
动态绑定style属性可传入一个对象参数,格式为:
:style="{key(属性名): value(属性值)}"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!-- :style="{key(属性名): value(属性值)}"-->
<!-- '50px'需要加单引号,否则会解析为变量-->
<h2 :style="{fontSize:'50px',color:'red'}">{{message}}</h2>
<h2 :style="{fontSize:finalSize+'px',color:finalColor}">{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: '你好',
finalSize: 100,
finalColor: 'red'
}
})
</script>
</body>
</html>
3.2数组语法
动态绑定style属性也可以传入一个数组参数,格式为
:style="[style1,style2]"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h2 :style="[baseStyle, baseStyle1]">{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: '你好',
baseStyle:{
color: 'red'
},
baseStyle1:{
fontSize:'100px'
}
}
})
</script>
</body>
</html>

浙公网安备 33010602011771号