在我们平常的前端开发中少不了对DOM的操作,以及样式的动态控制,那我们在使用vue的时候该如何灵活的绑定class呢

1.最简单一个class绑定

v-bind:class设置一个对象,可以动态地切换class
例如:
<div id="app">
<div :class ="{ 'active':isActive }"></ div>
</div>
<script>
new Vue({
el :'#app',
data: {
isActive: true
}
})
</script>
最终渲染结果为=====><div class="active"></div>

2对象中也可以传入多个属性,来动态切换class,同时class也可以与:class共存,看下面代码↓

<div id="app">
<div class="title" :class ="{ 'active':isActive, 'addcolor':isAdd }"></ div>
</div>
<script>
new Vue({
el :'#app',
data: {
isActive: true,
isAdd: true
}
})
</script>
最终渲染结果为=====><div class="title active addcolor"></div>

3.当class需要绑定比较多,而且逻辑比较复杂时,我们可以给:class的值绑定一个计算属性,看代码↓

<div id="app">
<div :class ="finalclass"></ div>
</div>
<script>
new Vue({
el :'#app',
data: {
isActive: true,
isAdd: true,
error: true
},
computed: {
return {
'active': this.isActive && this.isAdd,
'error': this.eroor
}
}
})
</script>
最终渲染结果为=====><div class="active error"></div>

4.我们也可以给:class绑定数组格式,以及在数组里再加逻辑,看代码↓

<div id="app">
<div :class ="[ {'active': isActive }, errorShow ]"></div>
</div>
<script>
new Vue({
el :'#app',
data : {
isActive : true ,
errorShow : 'error'
}
})
</script>
最终渲染结果为=====><div class="active error"></div>

5.再来看一种组合式使用方法,看下面代码↓

<div id="app">
<button :class ="finalclass"></button>
</div>
<script>
new Vue({
el :'#app',
data: {
size: 'large',
disabled: true
},
computed: {
finalclass: function (){
return [
'btn',
{
[ 'btn-' + this.size ]: this.size !== '',
[ 'btn-disabled']: this.disabled
}
]
}
}
})
</script>
最终渲染结果为=====><button class ="btn btn-large btn-disabled"></button>

6.绑定内联样式

<div id="app">
<div :style ="finalstyle"></div>
</div>
<script>
new Vue({
el :'#app',
data: {
finalstyle: {
color: 'blue',
fontSize: 16+'px'
//这里css属性的名称用驼峰命名或短横线分割命名
}
}
})
</script>
最终渲染结果为=====><div style="color: blue; font-size: 16px;"></div>

应用多个样式对象时,也可以使用数组语法:

<div :style="style1, style2">123</div>

----------------------------------------------------

vue里如何灵活的绑定class以及内联style的更多相关文章

  1. vue中,class、内联style绑定、computed属性

    1.绑定Class ①对象语法 <li :class="{ 'active': activeIdx==0 }" @click="fnClickTab(0)" ...

  2. vue 绑定 class 和 内联样式(style)

    <div id="app31"> <!--多个属性 ,号隔开--> <!-- v-bind:style="{fontSize: fontSi ...

  3. vue 组件高级用法(递归组件,内联模板,动态组件,异步组件)

  4. vue select下拉框绑定默认值

    vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当 ...

  5. vue之单表输入绑定

    vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V ...

  6. vue 之 表单输入绑定

    vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V ...

  7. js里的发布订阅模式及vue里的事件订阅实现

    发布订阅模式(观察者模式) 发布订阅模式的定义:它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. 发布订阅模式在JS中最常见的就是DOM的事件绑定与触发 ...

  8. vue中v-model 数据双向绑定

    表单输入绑定 v-model 数据双向绑定,只能应用在input /textare /select <div id="app"> <input type=&quo ...

  9. Vue表单控件绑定

    前面的话 本文将详细介绍Vue表单控件绑定 基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.v-model本质上不过是语法糖,它负 ...

随机推荐

  1. Postman----模拟服务器返回数据

    使用场景:在某些情况下,比如A接口还没开发好,我们需要测试B接口,刚好B接口的请求数据中需要包含A接口返回的数据,这时我们就可以模拟A接口服务器返回的数据来测试B接口 解决办法: 举例:模拟此 htt ...

  2. Java Servlet 2.5 设置 cookie httponly

    Servlet 3.0 有 cookie.setHttpOnly(true); 多么人性化, Servlet 2.5 是没有这个方法的要这个曲线救国:cookie.setPath("; Ht ...

  3. Redis详解(二)------ redis的配置文件介绍

    上一篇博客我们介绍了如何安装Redis,在Redis的解压目录下有个很重要的配置文件 redis.conf (/opt/redis-4.0.9目录下),关于Redis的很多功能的配置都在此文件中完成的 ...

  4. OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  5. hydra暴力破解ssh服务器密码

    概述 我都没想到,第一次暴力破解服务器密码.竟然是对自己的单位服务器出手..囧,因为还没来得及找测试部要来服务器登录密码,测试部负责人已经下班走了.后来又联系不上,这要更新代码,怎么办..于是就对测试 ...

  6. LVM 移除PV步骤

    1.先查看需要收缩文件系统的使用情况,收缩后的文件系统空间不能小于已经使用的空间 df -hT 2.卸载需要收缩的文件系统(以/dev/vg0/lvm1为例) umount /dev/vg0/lvm1 ...

  7. 为什么面试你要25K,HR只给你20K?

    周末了,我们来聊个轻松的话题,关于涨薪,哈哈~ 前阵子,栈长给大家分享了<为什么公司宁愿 25K 重新招人,也不给你加到 20K?>,今天我们来聊一个差不多的话题: 为什么面试你要25K, ...

  8. ASP.NET Core的实时库: SignalR -- 预备知识

    大纲 本系列会分为2-3篇文章. 第一篇介绍SignalR的预备知识和原理 然后会介绍SignalR和如何在ASP.NET Core里使用SignalR. 本文的目录如下: 实时Web简述 Long ...

  9. Java虚拟机一:运行时数据区域

    java虚拟机在执行java程序的过程中,会把内存划分为若干个不同的数据区域.每个区域都有各自的用途,创建和销毁时间,按照<java虚拟机规范(Java SE 7 版)>的规定,虚拟机运行 ...

  10. go.js remove 特定part

    我想删除一个实际上是背景的部分. 假设这是我添加part的方式 myDiagram.add( scope.gj(go.Part,//此Part未绑定到任何模型数据 { layerName:“Backg ...