vue如何动态的修改页面元素的属性
假如我们想动态的修改页面元素的属性,比如class属性,这样写是错误的:<div class="{{isAcctive}}"></div>因为插值表达式不能用在属性的值中。Vue对class属性进行了特殊处理,可以接收数组或对象格式:数组语法我们可以借助于v-bind指令来实现:HTML:<div v-bind:class="isActive"></div
·
假如我们想动态的修改页面元素的属性,比如class属性,这样写是错误的:
<div class="{{isAcctive}}"></div>
因为插值表达式不能用在属性的值中。
Vue对class属性进行了特殊处理,可以接收数组或对象格式:
数组语法
我们可以借助于v-bind指令来实现:
HTML:
<div v-bind:class="isActive"></div>
你的data属性:
data:{
isActive:['active','hasError']
}
渲染后的效果:
<div class="active hasError"></div>
对象语法
我们可以传给 v-bind:class 一个对象,以动态地切换 class:
<div v-bind:class="{ active: isActive }"></div>
上面的语法表示 active 这个 class 存在与否将取决于数据属性 isActive 的 truthiness。
你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。当有如下模板:
<div class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }">
</div>
和如下 data:
data: {
isActive: true,
hasError: false
}
结果渲染为:
<div class="static active"></div>
当 isActive 或者 hasError 变化时,class 列表将相应地更新。例如,如果 hasError的值为 true,class 列表将变为 “static active text-danger”。
简写
v-bind:class可以简写为:class
更多推荐
已为社区贡献1条内容
所有评论(0)