vue里如何灵活的绑定class以及内联style
在我们平常的前端开发中少不了对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的更多相关文章
- vue中,class、内联style绑定、computed属性
1.绑定Class ①对象语法 <li :class="{ 'active': activeIdx==0 }" @click="fnClickTab(0)" ...
- vue 绑定 class 和 内联样式(style)
<div id="app31"> <!--多个属性 ,号隔开--> <!-- v-bind:style="{fontSize: fontSi ...
- vue 组件高级用法(递归组件,内联模板,动态组件,异步组件)
- vue select下拉框绑定默认值
vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当 ...
- vue之单表输入绑定
vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V ...
- vue 之 表单输入绑定
vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V ...
- js里的发布订阅模式及vue里的事件订阅实现
发布订阅模式(观察者模式) 发布订阅模式的定义:它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. 发布订阅模式在JS中最常见的就是DOM的事件绑定与触发 ...
- vue中v-model 数据双向绑定
表单输入绑定 v-model 数据双向绑定,只能应用在input /textare /select <div id="app"> <input type=&quo ...
- Vue表单控件绑定
前面的话 本文将详细介绍Vue表单控件绑定 基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.v-model本质上不过是语法糖,它负 ...
随机推荐
- vue不是内部或外部命令解决验证方案
一.前提 1.该教程是在你已经安装配置好node.js和express情况下 2.你已经完成了vue和vue-cli的全局安装 3.完成以上2步后,使用vue指令,会显示"vue不是内部或外 ...
- python3环境搭建(uWSGI+django+nginx+python+MySQL)
1.系统环境,必要知识 #cat /etc/redhat-release CentOS Linux release (Core) #uname -r -.el7.x86_64 暂时关闭防护墙,关闭se ...
- 移动通信最先进的音频编解码器EVS及用好要做的工作
语音通信从最初的只有有线通信变成后来的有线通信与无线通信(移动通信)的竞争,当移动语音通信价格下来后有线语音通信明显处于逆势.如今移动语音通信的竞争对手是OTT(On The Top)语音,OTT语音 ...
- Django:Python3.6.2+Django2.0配置MySQL
持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...
- 一文学会Scala
整体介绍 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. 联邦理工学院洛桑(EPFL)的Martin Odersky于2001 ...
- LeetCode算法题-Unique Morse Code Words(Java实现)
这是悦乐书的第318次更新,第339篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是804).国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系 ...
- C#简单继承示例详解——快速入门
在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承.封装.多态),今天我们来揭开他的神秘面纱. 话不多说,我们上菜. using System; using System.Collect ...
- maven 依赖中scope标签的配置范围详解
在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试class ...
- vue 脚手架 立即可以写业务 vue + vue-router + less + axios + elementUI + moment
https://github.com/cynthiawupore/wq-cli
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...