Vue——样式绑定的几种方式

文章目录

  • 前言
  • 往期回顾
  • 绑定对象
  • 绑定对象的另一种写法
  • 绑定数组
  • 数组与对象的嵌套

前言

样式绑定在vue中属于一种很常见的操作。在之前博客中针对样式的绑定操作,介绍了一个指令v-bind。缩写为:xxx

vue 官网 样式绑定

往期回顾

先简单回顾下最开始绑定标签样式的操作,当时是采取指定标签的class属性作为样式的修改。

<template><h1>标签动态属性</h1><!-- <div v-bind:class="dynamicClass"></div><br/><div :class="dynamicClass"></div><br/><div :class="!isShow?'green':'red'"></div><br/> --><div v-bind="dynamicMoreBind"></div>
</template><script >
export default{data(){return{dynamicClass:"appClass",isShow:true,// 同标签 多属性值绑定 可以采取封装对象的形式实现dynamicMoreBind:{id:"moreId",class:"appClass"}}}
}
</script>
<style>
.appClass{color:aqua;border: solid 1px;height: 10%;width: 20%;
}
.green{color: green;border: solid 1px;height: 10%;width: 20%;
}
.red{color: red;border: solid 1px;height: 10%;width: 20%;
}
</style>

但使用拼接字符串的方式进行复杂样式的绑定,是很容易出现问题的。因此,vue为classv-bind指令做了功能增强,除了使用字符串之外,表达式的值也可以是对象或数组。

绑定对象

v-bind指令,动态绑定元素属性的时候,可以采取如下的方式进行对象信息的绑定。

<template><h1>绑定样式class</h1><hr><h2>绑定对象</h2><div :class="{active:isActive,'text-danger':hasError}">6666666</div>
</template>
<script>
export default{data(){return{isActive:true, // 如果为true 则使用 .active ,否则不使用hasError:true}}
}
</script>
<style>.text-danger{color: red;}.active{font-size: 50px}
</style>

其中,:class="{active:isActive,'text-danger':hasError}"中,对象的各个属性值的含义如下:

  • 当变量 isActive 为 true 时,则会使用 active 样式
  • 当变量 hasError 为 true 时,则会使用 text-danger 样式

效果如下所示:
在这里插入图片描述
若其中某个样式的值为false,显示效果如下:
在这里插入图片描述

绑定对象的另一种写法

上述的绑定操作中,如果出现很多的对象属性时,采取该方式依旧不能很好的阅读代码和维护。可以将对象定义在tata区中。如下所示:

<template><h1>绑定样式class</h1><hr><h2>绑定对象</h2><!-- <div :class="{active:isActive,'text-danger':hasError}">6666666</div> --><div :class="objClass">7777777</div>
</template>
<script>
export default{data(){return{isActive:false, // 如果为true 则使用 .active ,否则不使用hasError:true,objClass:{'active':true, // 如果为true 则使用 .active ,否则不使用'text-danger':true}}}
}
</script>
<style>.text-danger{color: red;}.active{font-size: 50px}
</style>

在这里插入图片描述

绑定数组

数组样式数据,绑定class。如果以其他的语言比如Java来看这个问题,其实数组也是对象的一种形式。前端代码如下所示:

<template><h1>绑定样式class</h1><hr><h2>绑定对象</h2><!-- <div :class="{active:isActive,'text-danger':hasError}">6666666</div> --><div :class="objClass">7777777</div><h2>绑定数组</h2><div :class="['active','text-danger']">数组样式数据绑定1</div><div :class="arryActClass">数组样式数据绑定2</div>
</template>
<script>
export default{data(){return{isActive:false, // 如果为true 则使用 .active ,否则不使用hasError:true,objClass:{'active':true, // 如果为true 则使用 .active ,否则不使用'text-danger':true},arryActClass:['active','text-danger']}}
}
</script>
<style>.text-danger{color: red;}.active{font-size: 50px}
</style>

展示效果如下:
在这里插入图片描述

:class绑定数组类型数据的写法,这两种效果是一样的。

在数组对象的写法中,还支持三目表达式的语法,如下所示:

<template><h1>绑定样式class</h1><hr><h2>绑定对象</h2><!-- <div :class="{active:isActive,'text-danger':hasError}">6666666</div> --><div :class="objClass">7777777</div><h2>绑定数组</h2><div :class="['active','text-danger']">数组样式数据绑定1</div><div :class="arryActClass">数组样式数据绑定2</div><div :class="[isActive?'active text-danger':'green']">数组样式数据绑定3</div>
</template>
<script>
export default{data(){return{isActive:false, // 如果为true 则使用 .active ,否则不使用hasError:true,objClass:{'active':true, // 如果为true 则使用 .active ,否则不使用'text-danger':true},arryActClass:['active','text-danger']}}
}
</script>
<style>.text-danger{color: red;}.active{font-size: 50px}.green{color: green;}
</style>

在这里插入图片描述

数组与对象的嵌套

数组与对象嵌套的方式,也能进行标签样式的绑定。但这里需要注意一个细节。

只能是数组嵌套对象

主要写法如下所示:

:class="['active',{green:isGreen}]"

案例如下所示:

<template><h1>绑定样式class</h1><hr><h2>绑定对象</h2><!-- <div :class="{active:isActive,'text-danger':hasError}">6666666</div> --><div :class="objClass">7777777</div><h2>绑定数组</h2><div :class="['active','text-danger']">数组样式数据绑定1</div><div :class="arryActClass">数组样式数据绑定2</div><div :class="[isActive?'active text-danger':'green']">数组样式数据绑定3</div><h2>数组嵌套对象</h2><!-- isGreen 变量值为true时,使用 green 样式 --><div :class="['active',{green:isGreen}]">数组嵌套对象</div>
</template>
<script>
export default{data(){return{isActive:false, // 如果为true 则使用 .active ,否则不使用hasError:true,objClass:{'active':true, // 如果为true 则使用 .active ,否则不使用'text-danger':true},arryActClass:['active','text-danger'],isGreen:true}}
}
</script>
<style>.text-danger{color: red;}.active{font-size: 50px}.green{color: green;}
</style>

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

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

相关文章

vue3_组件间通信方式

目录 一、父子通信 1.父传子&#xff08; defineProps&#xff09; 2.父传子&#xff08;useAttrs&#xff09; 3.子传父&#xff08;ref&#xff0c;defineExpose &#xff09; 4.子传父&#xff08;defineEmits&#xff09; 5.子传父&#xff08;v-model&#xff09; …

车载测试面试题专题 - 如何测试蓝牙电话功能

现代车载系统中&#xff0c;蓝牙电话功能已经成为了一个必不可少的功能。它不仅提高了驾驶安全性&#xff0c;还提供了极大的便利性。作为车载行业的测试人员&#xff0c;如何全面、有效地测试车载蓝牙电话功能是我们工作的重要部分。因此在车载测试的面试过程中&#xff0c;蓝…

k8s怎么监听自定义资源的变更?(1)

这里我们通过 k8s的 code-generate来生成操作自定义资源的代码来监听变更 第一步下载工具 下载安装 k8s code-generate 查看我们的k8s版本 kubectl get node 输出结果为 可以看到我们的k8s版本为 v1.22.0 所以此时我们要下载与之对应的版本的code-generate git clone htt…

深入解析 Web 开发中的强缓存与协商缓存机制

在 Web 开发中,缓存机制是提高页面加载速度和用户体验的重要技术。缓存分为两种主要类型:强缓存和协商缓存。本文将详细介绍这两种缓存机制的原理、实现方式及其区别,并演示如何在 <meta> 元素中和 Nginx 服务器中进行缓存控制。 强缓存 强缓存(Strong Caching)是指…

iPhone的5G设置怎么更改吗?设置好这些能够优化电池的使用寿命

随着5G技术的普及&#xff0c;iPhone用户现在可以享受到更快的网络速度&#xff0c;但这同时也带来了一个问题&#xff1a;如何在使用5G和保持电池寿命之间找到平衡&#xff1f;苹果公司通过引入“5G Auto”设置&#xff0c;为用户提供了一个智能的解决方案&#xff0c;但用户也…

【JAVA WEB实用与优化技巧】如何使用本地.bat/.sh脚本快速将服务发布到测试环境?

文章目录 普通方式的springboot 使用docker打包发布【手动构建镜像模式】1. maven 打包可运行jar包2.手动打包镜像3.运行容器 全自动化本地命令发布到远程服务的方式配置ssh信任公钥获取公钥git 获取公钥方式: 桌面右键 -> open git gui here -> help -> show SSH key…

Honor of Kings 2024.06.03 50star (S35) AFK

Honor of Kings 2024.06.03 50star (S35) AFK 来个赛季S35总结吧&#xff0c;这个赛季结束以后&#xff0c;可能要和【魔兽世界】一样AFK了&#xff0c;手游来说肯定没法子和WOW相比&#xff0c;干啥都是有队友才好玩。 我玩的基本都是肉&#xff0c;爆发强的英雄&#xff0c;最…

llama-factory微调大模型

一、背景 微调或者全量调大语言模型&#xff0c;还包括deepseek,想找个快速的微调教程&#xff0c;网上暂时没有 二、原理和步骤 原理&#xff1a;搭建环境太累了&#xff0c;还是docker环境镜像简单快捷 1、先下载模型 如果用本身的会自动从huggingface下载&#xff0c;这…

解决JSON.stringify 方法在序列化 BigInt 类型时的错误

今天学nest时&#xff0c;使用apifox发送请求获取数据&#xff0c;结果还一直报错&#xff0c;而且还是我从未见过的 Do not know how to serialize a BigInt at JSON.stringify (<anonymous>) at stringify&#xff0c; 我都是跟着人家敲的&#xff0c;我就纳闷了&…

vector的使用和实现

目录 一、vector的常用接口说明1.vector的介绍2.vector的使用2.1 vector的定义2.2 vector的遍历operator[ ]迭代器范围for 2.3 vector的空间增长问题size和capacityreserveresize 2.4 vector的增删查改push_back和pop_backinserterasefindsort vector的模拟实现1、基本成员变量…

Linux基础操作——文件系统+find+head+tail

Linux基础操作——文件系统findheadtail 本文主要涉及LINUX的一些基础操作&#xff0c;文件系统与find命令head和tail命令 文章目录 Linux基础操作——文件系统findheadtail一、Linux下的文件类型二、ls -l 后各列的解释三、 find 查找四、 head 与 tail 查看文件的头部尾部 一…

Nginx Rewrite

Nginx Rerite概述 Nginx Rerite基本操作 location与rewrite的区别 location 通过前缀或正则匹配用户的URL访问路径做页面跳转、访问控制和代理转发 rewrite 对用户的URL访问路径进行重写&#xff0c;再重定向跳转访问重写的路径 Nginx正则表达式 校验数字的表达式 数字&a…

家宽动态公网IP,使用docker+ddns 实现动态域名解析

官方地址&#xff1a;https://github.com/jeessy2/ddns-go 安装docker docker pull jeessy/ddns-godocker run -d --name ddns-go --restartalways --nethost -v /opt/ddns-go:/root jeessy/ddns-go然后访问ip端口 配置时注意如下

pytorch+YOLOv8-1

1.工具开发 2.idea配置pytorch环境 默认安装新版本torch pip install torch 3.pytorch验证 4. print(torch.cuda.is_available()) 输出结果为 False 说明我只能用cpu

有关RIPv2认证技术与网络安全综合实验

有关RIPv2认证技术与网络安全综合实验 实验拓扑如下&#xff1a; 理论知识&#xff1a; 比较 RIPv1&#xff1a;广播式通信&#xff0c;255.255.255.255&#xff1b;不支持认证&#xff0c;有类不带掩码&#xff1b;不支持VLSM和CIDR RIPV2&#xff1a;组播通信&#xff0c;22…

【Matplotlib作图-4.Distribution】50 Matplotlib Visualizations, Python实现,源码可复现

目录 04 Distribution 4.0 Prerequisite 4.1 连续变量的直方图(Histogram for Continuous Variable) 4.2 分类变量的直方图(Histogram for Categorical Variable) 4.3 Density Plot 4.4 Density Curves with Histogram 4.5 Joy Plot 4.6 Distributed Dot Plot 4.7 Box P…

详解和实现数据表格中的行数据合并功能

theme: smartblue 前言 需求场景&#xff1a; 在提供了数据查看和修改的表格视图中(如table、a-table等…)&#xff0c;允许用户自行选择多行数据&#xff0c;依据当前状态进行特定列数据的合并操作。选中的数据将统一显示为选中组的首条数据值。同时&#xff0c;页面会即时反…

插入排序(直接插入排序与希尔排序)----数据结构-排序①

1、插入排序 1.1 插入排序的基本思想 将待排序的元素按其数值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的元素插入完为止&#xff0c;就可以得到一个新的有序序列 。 实际上在我们的日常生活中&#xff0c;插入排序的应用是很广泛的&#xff0c;例如我…

二分查找算法介绍(边界值、循环条件、值的变化、二分查找的原理、异常处理)

一、二分查找法原理介绍 二分查找是经典的查找算法之一&#xff0c;其原理也非常简单。 对于已排序的数组&#xff08;假设是整型&#xff0c;如果非整型&#xff0c;如果有排序和大小比较的定义&#xff0c;也可以使用二分查找&#xff09;&#xff0c;我们每次判断中间值与目…

Golang TCP网络编程

文章目录 网络编程介绍TCP网络编程服务器监听客户端连接服务器服务端获取连接向连接中写入数据从连接中读取数据关闭连接/监听器 简易的TCP回声服务器效果展示服务端处理逻辑客户端处理逻辑 网络编程介绍 网络编程介绍 网络编程是指通过计算机网络实现程序间通信的一种编程技术…