v-bind,
动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。
<div id="app">
<a href="http://www.baidu.com">百度一下</a>
<br>
//和上面a标签中的href属性赋值一样的效果
//v-bind:加属性名=“变量名”
<a v-bind:href="aHref">百度一下</a>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
aHref: 'http://www.baidu.com'
}
})
</script>
v-bind由于开发经常使用,所以官方还有一种缩写方式:v-bind:属性 = :属性
//v-bind缩写也能得到同样的效果
<a v-bind:href="aHref">v-bind百度一下</a>
<a :href="aHref">v-bind百度一下</a>
在绑定 class 或 style attribute 时,支持其它类型的值,如数组或对象。
对象值的示例:
<div :class="{ 类名 : 变量或值}">动态绑定属性--class类名--对象</div>
<div :style="{ 样式名: 变量或值 }">绑定style</div>
绑定 class
<div :class="{ active : isActive}">动态绑定属性--class类名</div>
<div :class="{ active : isActive, line: !isActive}">isActive为true,绑定active类名,line类名不绑定</div>
//直接绑定类名如果过长,也可放进函数methods里面,获取类名的对象,和上面是一样的结果。
<div :class="getClasss()">动态绑定属性--class类名</div>
<script>
const app = new Vue({
el: '#app',
data: {
isActive: true
},
methods: {
getClasss: function () {
return { active : this.isActive, line: !this.isActive};
}
}
})
</script>
class类名除了可以动态绑定对象还能绑定数组:
//在属性中是数组的话,加上引号,就和class=“active line”一样的效果
<div :class="['active', 'line']">112233</div>
//如果不加上引号就是变量
<div :class="[active, line]">112233</div>
<div :class="getClasss()">动态绑定属性--放进函数方法获取class类名</div>
<script>
const app = new Vue({
el: '#app',
data: {
isActive: true,
active: 'active',
line: 'line'
},
methods: {
getClasss: function () {
return [ this.active , this.line ];
}
}
})
</script>
绑定 style
<div :style="{ fontSize: size + 'px' }"></div>
<div :class="{ active : isActive, line: !isActive}">isActive为true,绑定active类名,line类名不绑定</div>
<script>
const app = new Vue({
el: '#app',
data: {
size : '18'
}
})
</script>
当然还有组件的prop 绑定,以后再慢慢学习!