Vue3 学习笔记(八)Vue3 语法-Class 与 Style绑定详解

在这里插入图片描述


在 Vue.js 中,动态地绑定 CSS 类和样式是一项常见的需求。Vue 提供了几种不同的方法来实现这一点,包括对象语法、数组语法和组件的作用域插槽。


以下是这些方法的详细说明:

一、Class 绑定


1、对象语法

对象语法允许根据表达式的真值动态地切换类。

<script setup>
import { ref } from 'vue'const isActive = ref(true);
const hasError = ref(false);</script><template><div :class="{ active: isActive, 'text-danger': hasError }"></div>
</template>

在这个例子中,active 类将在 isActivetrue 时应用,text-danger 类将在 hasErrortrue 时应用。


2、数组语法

数组语法允许你根据数组中的值动态地应用多个类。

<script setup>
import { ref } from 'vue'const activeClass = ref('active');const errorClass = ref('');</script><template><div :class="[activeClass, errorClass]"></div>
</template>

在这个例子中,activeClass 将始终被应用,而 errorClass 只有在其值非空时才会被应用。


3、字符串语法

字符串语法允许你直接将静态类名绑定到元素上。

<script setup>
import { ref } from 'vue'const dynamicClass = ref('dynamic-active');</script><template><div class="static-class" :class="dynamicClass"></div>
</template>

4、使用计算属性进行 Class 绑定

<script setup>
import { ref,computed } from 'vue'const isActive = ref(true);
const hasError = ref(false);// 定义一个计算属性,它返回一个对象
const classObject = computed(() => {return {active: isActive.value,'text-danger': hasError.value};});</script><template><div :class="classObject"></div>
</template>

在这个例子中,classObject 是一个计算属性,它根据 isActivehasError 的值返回一个对象。这个对象中的键是类名,值是一个布尔表达式,决定了相应的类是否被应用。

解释
  • classObject 计算属性返回一个对象,其中包含两个属性:active'text-danger'
  • isActivetrue 时,active 类将被应用。
  • hasErrortrue 时,'text-danger' 类将被应用。
  • 由于 classObject 是一个计算属性,它的值会根据 isActivehasError 的变化自动更新,从而实现响应式的类绑定。

这种方法的优点是它使得类绑定的逻辑更加集中和可维护,特别是当你有多个条件需要根据复杂的逻辑来应用不同的类时。通过将这些逻辑封装在计算属性中,你可以保持模板的简洁和清晰。


二、Style 绑定


1、对象语法

对象语法允许根据表达式的真值动态地切换样式。

<script setup>
import { ref } from 'vue'const activeColor = ref('red');
const fontSize = ref(14);</script><template><div :style="{ color: activeColor, fontSize: fontSize + 'px' }"><p> style </p></div></template>

在这个例子中,文本颜色将始终是红色,字体大小将根据 fontSize 的值动态变化。

效果如下:

在这里插入图片描述


<script setup>
import { ref } from 'vue'const activeColor = ref('red');
const fontSize = ref(36);</script><template><div :style="{ color: activeColor, fontSize: fontSize + 'px' }"><p> style </p></div></template> 

修改fontSize 字体大小后, 效果如下:

在这里插入图片描述



2、数组语法

数组语法允许你根据数组中的值动态地应用多个样式。

<script setup>
import { ref } from 'vue'const baseStyles = ref({color: 'blue',fontSize: '12px'});const overridingStyles = ref({color: ''});</script><template><div :style="[baseStyles, overridingStyles]"><h1> ces 	</h1></div>
</template>

在这个例子中,baseStyles 将始终被应用,而 overridingStyles 将在其值非空时覆盖 baseStyles 中的样式。

在这里插入图片描述



<script setup>
import { ref } from 'vue'const baseStyles = ref({color: 'blue',fontSize: '12px'});const overridingStyles = ref({color: 'red'});</script><template><div :style="[baseStyles, overridingStyles]"><h1> ces 	</h1></div>
</template>

调整 overridingStyles 为非空值时的效果:


在这里插入图片描述

注意事项
  • 当使用数组语法时,确保数组中的每个样式对象都返回一个样式对象,而不是一个数组。

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

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

相关文章

java知识管理系统源码(springboot)

项目简介 知识管理系统实现了以下功能&#xff1a; 知识管理系统的主要使用者分为管理员和用户两个角色。管理员功能有个人中心&#xff0c;用户管理&#xff0c;文章分类管理&#xff0c;文章信息管理&#xff0c;资料分类管理&#xff0c;资料下载管理&#xff0c;问答管理…

信捷 PLC C语言 定时器在FC中的使用

传统梯形图的定时器程序写起来简单&#xff0c;本文用C语言写定时器的使用。 定时器在c语言中使用&#xff0c;和普通梯形图中使用的区别之一是既有外部条件&#xff0c;也有内部条件。 1.建全局变量 2.建立FC POU 这个是功能POU程序。 这里的Enable是内部条件 3.调用包含定…

重写(外壳不变)

重写&#xff1a;是子类对父类非静态、非private修饰、非final修饰、非构造方法等的实现过程进行重新编写返回值和形参都不能改变。 重写的好处&#xff1a;子类可以根据需要&#xff0c;定义专属于自己的行为。&#xff08;子类能够根据需要实现父类的方法&#xff09; 方法…

大数据日志处理框架ELK方案

介绍应用场景大数据ELK日志框架安装部署 一&#xff0c;介绍 大数据日志处理框架ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;是一套完整的日志集中处理方案&#xff0c;以下是对其的详细介绍&#xff1a; 一、Elasticsearch&#xff08;ES&#xff09; 基本…

Golang | Leetcode Golang题解之第515题在每个树行中找最大值

题目&#xff1a; 题解&#xff1a; func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …

怎么理解ES6 Proxy

Proxy 可以理解成&#xff0c;在目标对象之前架设一层 “拦截”&#xff0c;外界对该对象的访问&#xff0c;都必须先通过这层拦截&#xff0c;因此提供了一种机制&#xff0c;可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理&#xff0c;用在这里表示由它来 “代理…

前端知识串联笔记(更新中...)

1.MVVM MVVM 是指 Model - View - ViewModel&#xff0c;Model 是数据与业务逻辑&#xff0c;View 是视图&#xff0c;ViewModel 用于连接 View 和 Model Model ---> View&#xff1a;将数据转化成所看到的页面&#xff0c;实现的方式&#xff1a;Data Bindings -- 数据绑定…

.NET Core WebApi第6讲:WebApi的前端怎么派人去拿数据?(区别MVC)

一、前端界面小基础 head&#xff1a;引入CSS, 引入JS是写在head里面。 body&#xff1a;眼睛肉眼能看到的用户展示的界面是写在body里面。 二、前端怎么派人去拿数据&#xff1f; 1、MVC&#xff1a;前后端不分离&#xff0c;MVC相比WebApi只是多了一个views的文件夹 &am…

Spring boot 配置文件的加载顺序

Spring Boot 在启动时会扫描以下位置的 application.properties 或者 application.yml 文件作为全局配置文件&#xff1a; –file:./config/–file:./–classpath:/config/–classpath:/以下是按照优先级从高到低的顺序&#xff0c;如下所示&#xff1a; Spring Boot 会全部扫…

分类预测|基于GWO灰狼优化K近邻KNN的数据分类预测Matlab程序 多特征输入多类别输出GWO-KNN

文章目录 一、基本原理原理流程总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 灰狼优化&#xff08;GWO&#xff0c;Grey Wolf Optimization&#xff09;是一种基于灰狼社会行为的优化算法&#xff0c;常用于解决各种优化问题。将GWO应用于K近邻&#xff0…

『完整代码』宠物召唤

创建脚本并编写&#xff1a;PetFollowTarget.cs using UnityEngine; public class PetFollowTarget : MonoBehaviour{Transform target;float speed 2f;Animator animator;void Start(){target GameObject.Find("PlayerNormal/PetsSmallPos").gameObject.transform…

C++ 魔法三钥:解锁高效编程的封装、继承与多态

快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 &#x1f4af;前言 &#x1f4af;封装 1.封装概念 2.封装格式 3.封装的原理 4.封装的作用 &#x1f4af;继承 1.继承的概念 2.继承格式 3.继承的…

情感咨询小程序的市场需求大吗?

情感咨询小程序的市场需求较大&#xff0c;主要体现在以下几个方面&#xff1a; 情感问题普遍存在5&#xff1a; 恋爱关系困扰&#xff1a;在恋爱过程中&#xff0c;人们经常会遇到诸如沟通不畅、争吵频繁、信任危机等问题。例如&#xff0c;年轻人在恋爱初期可能会因为不了解…

【现代C++】常量求值

现代C&#xff08;特别是C11及以后的版本&#xff09;增强了对编译时常量求值的支持&#xff0c;包括constexpr函数、constinit和consteval关键字。这些特性允许在编译时进行更多的计算&#xff0c;有助于优化运行时性能并确保编译时的数据不变性。 1. constexpr - 编译时常量…

震惊!总环On Hold之后,这些期刊也正在被调查!涉及Nature旗下、WR、JCLP....

On Hold期刊 总环被Oh Hold应该是学术圈最近最热的新闻了。相关的调查团队5GH 也发布了相关的推送报道此事&#xff1a; 在该推送的留言区&#xff0c;该团队也透露了一些后续的调查进展&#xff0c;涉及了Nature旗下期刊以及多个中科院一区TOP。评论中大家对于期刊的热议度很高…

医学影像学基础:理解CT、MRI、X射线和超声等医学影像设备的基本工作原理和成像技术

目录 医学影像学基础 1. X射线成像 2. 计算机断层扫描&#xff08;CT&#xff09; 3. 磁共振成像&#xff08;MRI&#xff09; 4. 超声成像 综合对比 1、成像原理对比 2、安全性对比 3、应用领域对比 4、设备特点对比 总结 医学影像学基础 在医学影像学中&#xff0…

super和this

相同点&#xff1a; 1.都是Java中的关键字 2.都只可以在非静态方法中使用 3.在构造方法中使用必须是第一条语句并且二者不可以同时存在不同点&#xff1a; 1.this是当前对象的引用&#xff0c;super是子类对象从父类继承下来部分成员的引用 2.在非静态成员方法中&#xff0c;…

CSS、Less、Scss

CSS、Less和SCSS都是用于描述网页外观的样式表语言&#xff0c;但它们各自具有不同的特点和功能。以下是对这三者的详细阐述及区别对比&#xff1a; 详细阐述 CSS&#xff08;Cascading Style Sheets&#xff09; 定义&#xff1a;CSS是一种用来表现HTML或XML等文件样式的计算机…

计算机网络-CSMA/CD协议笔记及“争用期”的理解

假设a和b是总线型网络上相距最远的两个节点。 从零这个时刻a节点会往信道上发送数据&#xff0c;那么a节点发送的第一个比特&#xff0c;需要经过τ这么长的时间&#xff0c;也就是经过一个单向的传播时延之后。它的这个信号才可以被最远的这个节点检测到。那如果b结点在τ这个…

https://huggingface.co/上的模型无法用linux服务器clone怎么办(只需要稍微改一下网址,就可以切换到镜像下载)

问题描述&#xff1a; 在ubuntu系统上&#xff0c;使用如下命令&#xff0c;克隆仓库&#xff0c;报无法访问错误&#xff1a; git clone https://huggingface.co/distilbert/distilroberta-base通用解决方案&#xff1a; 把下面部分更换&#xff1a; https://huggingface.…