在我们平常的前端开发中少不了对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. Go-技篇第二 命名规范

    优秀的命名 优秀的命名应当是一贯的.短小的.精确的.所谓一贯,就是说同一个意义在不同的环境下的命名应当一致,譬如依赖关系,不要在一个方法中命名为depend,另一个方法中命名为rely.所谓短小,不必 ...

  2. 随手一记,maven打包

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-depen ...

  3. [codeforces 901E] Cyclic Cipher 循环卷积-Bluestein's Algorithm

    题目大意: 传送门 给两个数列${B_i}.{C_i}$,长度均为$n$,且${B_i}$循环移位线性无关,即不存在一组系数${X_i}$使得对于所有的$k$均有$\sum_{i=0}^{n-1} X ...

  4. loj548 「LibreOJ β Round #7」某少女附中的体育课

    这道题好神啊!!! 发现这题就是定义了一种新的卷积,然后做k+1次卷积. 这里我们就考虑构造一个变换T,使得$T(a) \cdot T(b) =T(a∘b)$,这里是让向量右乘这个转移矩阵. 于是我们 ...

  5. python+appium 【已解决】真机运行appium报错“WebDriverException: Message: A new session could not be created. (Original error: Command failed: C:\Windows\system32\cmd.exe /s /c.......详见内文

    问题报错提示: selenium.common.exceptions.WebDriverException: Message: A new session could not be created. ...

  6. python yield用法 (tornado, coroutine)

    yield关键字用来定义生成器(Generator),其具体功能是可以当return使用,从函数里返回一个值,不同之处是用yield返回之后,可以让函数从上回yield返回的地点继续执行.也就是说,y ...

  7. Entity Framework Core 关联删除

    关联删除通常是一个数据库术语,用于描述在删除行时允许自动触发删除关联行的特征:即当主表的数据行被删除时,自动将关联表中依赖的数据行进行删除,或者将外键更新为NULL或默认值. 数据库关联删除行为 我们 ...

  8. Cocoa包管理器之CocoaPods详解

    CocoaPods在Cocoa开发日常工作中经常用到的包管理器,即依赖管理工具.有的项目也有用Carthage的,Carthage是一个比较新的依赖管理工具,是使用Swift语言开发的.Carthag ...

  9. Vue 进阶之路(三)

    之前的文章我们已经对 vue 有了初步认识,这篇文章我们通过一个例子说一下 vue 的方法 methods,计算属性 computed 和监听器 watch. 现在我们有一个需求,变量 firstNa ...

  10. MySQL - 扩展性 3 负载均衡:眼花缭乱迷人眼

    负载均衡的基本思路很简单: 在一个服务器集群中尽可能地的平均负载量. 基于这个思路,我们通常的做法是在服务器前端设置一个负载均衡器.负载均衡器的作用是将请求的连接路由到最空闲的可用服务器上.如图 1, ...