Vue.js 2属性值绑定v-bind
语法:
v-bind指令用于动态绑定值给属性,它的值可以是数组,对象以及表达式
基本使用
<!-- 绑定一个属性 -->
<img v-bind:src="imageSrc">
<!-- 缩写 -->
<img :src="imageSrc">
<!-- 内联字符串拼接 -->
<img :src="'/path/to/images/' + fileName">
.camel修饰符(2.1.0+)
.camel 允许v-bind 属性以驼峰式命名,例如 SVG 的 viewBox 属性:
<svg :view-box.camel="viewBox"></svg>
绑定prop属性
prop属性一定要在组件的props里定义。
<my-component :prop="someThing"></my-component>
Class绑定
class绑定其中一个目的是为了动态改变元素的样式。
1、绑定对象表达式
<div :class="{ active: isActive }"></div>
isActive为true,添加class active,否则删除class active。
2、多个class
<div class="myclass" :class="{ active: isActive, 'text-danger': hasError }"></div>
在组件的data设置isActive和hasError的值:
data: {
isActive: true,
hasError: false
}
3、绑定到计算属性
<div :class="classObject"></div>
data: {
isActive: true,
error: null
},
computed: {
classObject: function () {
return {
active: this.isActive && !this.error,
'text-danger': this.error && this.error.type === 'fatal'
}
}
}
4、数组语法
<div :class="[activeClass, errorClass]"></div>
data: {
activeClass: 'active',
errorClass: 'text-danger'
}
在数组里的元素可以是三元表达式,或者对象:
<div :class="[isActive ? activeClass : '', errorClass]"></div>
<div :class="[{ active: isActive }, errorClass]"></div>
Style绑定
语法v-bind:style,缩写:style,它的值是一个javascript的object对象。
CSS属性名:可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case),短横线分割的需要使用单引号括起来。
基本使用
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
activeColor: 'red',
fontSize: 30
}
直接绑定到对象变量
<div v-bind:style="styleObject"></div>
data: {
styleObject: {
color: 'red',
fontSize: '13px'
}
}
数组语法
可以对样式以数组的方式赋值多个样式对象。
<div v-bind:style="[baseStyles, overridingStyles]"></div>
自动添加前缀
当v-bind:style 使用需要添加浏览器引擎前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀。