vue动态绑定class的几种方法

一、对象语法
1、给v-bind:class 设置一个对象,可以动态地切换class,例如:

<div id="app"><div :class="{'active':isActive}"></div>
</div>
<script>
var app = new Vue({el:'#app',data:{isActive:true}
})
</script>

最终渲染结果: <div class="active"></div>
2、对象中也可存在多个属性,动态切换class,:class 可以合class共存

<div id="app"><div class="static" :class="{'active':isActive,'error':isError}"></div>
</div>
<script>
var app = new Vue({el:'#app',data:{isActive:true,isError:false}
})
</script>

最终渲染结果:<div class="static active"></div>
3、当:class的表达式过长或逻辑复杂时,可以绑定一个计算属性,一般当条件多于两个时,都可以使用data或者computed

<div id="app"><div :class="classes"></div>
</div>
<script>
var app = new Vue({el:'#app',data:{isActive:true,isError:null},computed:{classes(){return {active:this.isActive && !this.error,'text-fail':this.error && this.error.type ==='fail'}}}
})
</script>

二、数组语法
1、当需要应用多个class时,可以使用数组语法,给:class绑定一个数组,应用一个class列表:

<div id="app"><div :class="[atvieCls,errorCls]"></div>
</div>
<script>
var app = new Vue({el:'#app',data:{atvieCls:'active',errorCls:'error'}
})
</script>

最后渲染的结果:<div class="active error"></div>
2、使用三元表达式,根据条件切换class(当数据isActive为真时,样式active才会被应用)

<div id="app"><div :class="[isActive ? activeCls : '',errorCls]"></div>
</div>
<script>
var app = new Vue({el:'#app',data:{isActive:true,atvieCls:'active',errorCls:'error'}
})
</script>

渲染的结果为:<div class="active error"></div>
3、class有多个条件时,这样写较为烦琐,可以在数组语法中使用对象语法:

<div id="app"><div :class="[{'active':isActive},errorCls]"></div>
</div>
<script>
var app = new Vue({el:'#app',data:{isActive:true,errorCls:'error'}
})
</script>

渲染的结果为:<div class="active error"></div>
4、与对象语法一样,也可以使用data、computed、method三种方法,以计算属性为例:

<div id="app"><button :class="classes"></button>
</div>
<script>var app = new Vue({el: '#app',data: {size: 'large',disabled: true},computed: {classes: function () {return ['btn',{['btn-'+this.size]: this.size!=='',['btn-disabled']: this.disabled,}]}}})
</script>

最后渲染结果:<div class="btn btn-large btn-disabled"></div>
三、在组件上使用
如果直接在自定义组件上使用class或:class,样式规则会直接应用到这个组件的根元素上,例如声明一个简单的组件:

<script>Vue.component('my-component', {template: '<p class="article">一些文本</p>'})
</script>
<div id="app"><my-component :class="'active':isActive"></my-component>
</div>
<script>var app = new Vue({el: '#app',data: {isActive: true}})
</script>

最终组件渲染后的结果为:<p class="article active">一些文本</p>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/805489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS任务切换学习

FreeRTOS任务切换学习 所谓任务切换&#xff0c;就是CPU寄存器的切换。假设当由任务A切换到任务B时&#xff0c;主要分为两步&#xff1a; 1&#xff1a;需暂停任务A的执行&#xff0c;并将此时任务A的寄存器保存到任务堆栈&#xff0c;这个过程叫做保存现场&#xff1b; 2&am…

【无标题】系统思考—心智模式

“直到你使无意识变为有意识&#xff0c;它将指导你的生活并且你会称之为命运。”—卡尔荣格 心智模式深藏于我们内心之中&#xff0c;它潜移默化地影响着我们对世界的理解和判断。往往这些影响是如此隐蔽&#xff0c;以至于我们自己都未必察觉到是什么在驱动我们的选择、决策…

【Entity Framework】聊聊EF中键

【Entity Framework】聊聊EF中键 文章目录 【Entity Framework】聊聊EF中键一、概述二、配置主键2.1 约定配置主键2.2 单个属性配置为实体主键2.3 组合主键 三、主键名称四、键类型和值五、备用键 一、概述 键用作每个实体实例的唯一标识符。EF中的大多数实体都有一个键&#…

线程池阻塞队列的选择

一、背景 想起前两年被问到阻塞队列怎么选&#xff0c;有界是必然的&#xff0c; ArrayBlockingQueue、LinkedBlockingQueue怎么选呢。 二、打开源码看看 ArrayBlockingQueue arrayBlockingQueue new ArrayBlockingQueue(3);LinkedBlockingQueue linkedBlockingQueue new Lin…

VPP 负载均衡测试代码

1. 均衡的测试思想和流程说明。 先说一下理论&#xff0c; 然后后边才知道 代码逻辑。 调试了两天&#xff0c;这个代码终于通了。 由于时间关系&#xff0c; 画了一个粗略的图。另外这个代码只是流程通了&#xff0c;不过要帮助理解负载均衡我认为已经足够了。 下面是windo…

QT Creator概览

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、Qt Creator 概览 ①&#xff1a;菜单栏 ②&#xff1a;模式选择 ③&#xff1a;构建套件选择器…

STL--容器

vector&#xff08;向量&#xff09; 优点&#xff1a;支持随机访问&#xff0c;所以查询效率高&#xff1b;尾部插入和删除操作效率高。 缺点&#xff1a;向非尾部插入或删除元素时&#xff0c;由于可能需要移动内存中的元素&#xff0c;效率较低&#xff1b;空间大小动态增长…

【Keil5-Debug和发布版本配置】

Keil5-Debug和发布版本配置 ■ Keil5-Debug和发布版本配置■ 一&#xff1a;sct文件 sct文件配置■ 二&#xff1a;发布版本不需要在 C/C&#xff0c;Asm&#xff0c;Linker&#xff0c;中添加 CMDDEBUG 宏定义。■ 三&#xff1a;Debug版本需要在Linker添加 --pd"-DCMDDE…

2024年华为OD机试真题-智能驾驶-Java-OD统一考试(C卷)

题目描述: 有一辆汽车需要从 m*n 的地图的左上角(起点)开往地图的右下角(终点),去往每一个地区都需要消耗一定的油量,加油站可进行加油 请你计算汽车确保从起点到达终点时所需的最少初始油量说明: (1) 智能汽车可以上下左右四个方向移动1 (2) 地图上的数字取值是 0或-1 或者…

【MySQL数据库 | 第二十四篇】Limit语句的性能问题和调优策略

前言&#xff1a; MySQL作为最流行的关系型数据库管理系统之一&#xff0c;被广泛应用于各种规模和类型的应用程序中。其强大的功能和灵活的查询语言使得开发人员能够高效地执行各种数据操作和分析。 然而&#xff0c;在处理大量数据或复杂查询时&#xff0c;一些开发人员可能…

Linux网卡:连接虚拟与现实的桥梁

在介绍Linux网卡之前&#xff0c;让我们先迈入时光机&#x1f570;️&#xff0c;回到1980年代末期&#xff0c;互联网正在逐步从一个科研网络向公众网络转变&#xff0c;Linux——一个自由和开源的操作系统诞生了&#x1f427;。Linux的出现&#xff0c;对于计算机科学领域来说…

非线性滤波相位解缠算法

相位解缠是InSAR数据处理流程中较为关键的步骤&#xff0c;同时也是地表高程模型重建 过程中的主要误差来源之一。迄今为止&#xff0c;针对干涉图的相位解缠问题&#xff0c;已经提出了各 种各样的相位解缠算法&#xff0c;这些算法大致可以分为以下几类&#xff1a;①路径跟踪…

DSP笔记13-时间基准子模块Time base(TB)比较子模块Counter cpmpare(CC)

时间基准子模块Time base(TB) 同步&#xff0c;计数 CTR计数寄存器 PRD周期寄存器 CMP比较寄存器&#xff0c;占空比 EPWMA&#xff0c; EPWMB&#xff0c;两个比较寄存器&#xff0c;但只有以及计数寄存器以及一个周期寄存器 计数模式 计数时钟TBCLK HSPCLKDIVx x0,分…

《QT实用小工具·二十三》 Ntp校时类

1、概述 源码放在文章末尾 该项目实现了 Ntp校时类 &#xff0c;包含如下功能&#xff1a; 可设置Ntp服务器IP地址。 推荐用默认的阿里云时间服务器 ntp1.aliyun.com 收到时间信号发出。 时间精确到秒。 下面是demo演示&#xff1a; 项目部分代码如下&#xff1a; #if…

解决Jenkins中Node和Yarn路径问题:‘No such file or directory‘

在Jenkins中使用Node.js和Yarn时&#xff0c;可能会遇到 No such file or directory 错误。这通常是因为Jenkins构建环境没有正确设置PATH环境变量&#xff0c;导致它无法找到Node.js或Yarn的执行文件。以下是几种解决这个问题的方法&#xff0c;确保您的CI/CD流程顺利运行。 …

在线视频下载工具lux(原annie)安装及使用教程

安装教程 下载ffmpeg&#xff0c;参考这篇文章&#xff1a;Python——Windows下载ffmpeg由于博主的系统为windows&#xff0c;所以选择不安装lux&#xff0c;直接下载.exe文件&#xff0c;进入lux的github网站后&#xff0c;选择右侧的Releases&#xff0c;下载下图的windows …

渗透测试常见端口总结

21端口渗透剖析 FTP通常用作对远程服务器进行管理&#xff0c;典型应用就是对web系统进行管理。一旦FTP密码泄露就直接威胁web系统安全&#xff0c;甚至黑客通过提权可以直接控制服务器。这里剖析渗透FTP服务器的几种方法。 基础爆破&#xff1a;FTP爆破工具很多&#xff0c;…

SpringBoot删除菜品模块开发(SpringMVC分割参数、事务管理、异常处理、批量删除)

需求分析与设计 一&#xff1a;产品原型 在菜品列表页面&#xff0c;每个菜品后面对应的操作分别为修改、删除、停售&#xff0c;可通过删除功能完成对菜品及相关的数据进行删除。 删除菜品原型&#xff1a; 业务规则&#xff1a; 可以一次删除一个菜品&#xff0c;也可以批…

【proteus仿真】定时器0中断实验

#include <REGX51.H> sbit LED1P2^0; void delay(unsigned int ten_s) {while(ten_s--); } void inittime0(void) {TMOD0x01;//选择为定时器0模式&#xff0c;工作方式1TH00xFC;//初值65536-100064536FC18H,定时1msTL00x18;ET01;//打开定时器0中断允许EA1;//打开总中断TR…

取消请求实战

关于前端取消请求&#xff0c;大多数文章都是new AbortController() 然后将signal放到请求中&#xff0c;然后执行abort取消&#xff0c;这种文章怎么好意思拿出来啊&#xff0c;mmmmini版的官方文档罢了。 首先要明确我们想要的效果是什么&#xff0c;可以对比一下toast.show…