:class的用法及应用

参考小满视频

在同一个标签中,class只能有一个,:class也只能有一个

:class的用法

1. :class = “非响应式的变量”(一般不使用,和写死了一样)

const a = "style1"
<span :class="a"></span>

浏览器中:
在这里插入图片描述

2. :class = “响应式对象”

const a = ref("style2")
<span :class="a"></span>

浏览器源码:
在这里插入图片描述

3. :class = “{对象形式}”

  • 可以有多个类名
  • 因为有{}包裹,所以称为对象形式,本质不是
<span :class="{ style3: 1 == 1 }"></span>
  • class中的style3有没有,取决于后面的计算结果,结果为true则有,flase则没有

浏览器源码:
在这里插入图片描述

4. :class=“[类名1,类名2]”

建议使用这种形式

  1. 可以是1个或者多个类名
  2. 类名可以是响应式对象
  3. 还可以三目运算
  • 目的:可以有多个类名
const a = ref("style4")
const b = ref("style5")
<span :class="[a,b]"></span>

浏览器源码:
在这里插入图片描述

  • 优点:可以使用三目运算符
const a = ref("style4");
const b = ref("style5");
const c = ref("style6");

<span :class="[1 == 1 ? a : b, c]"></span>

浏览器源码:
在这里插入图片描述

实际中的应用

  • 实现标签切换

代码中重要的地方

  1. 通过:class实现类的添加和删除,达到切换样式的效果
  2. 动态组件<component :is="组件名字"></component>

父组件代码:

父组件App.vue
<template>
      <component :is="whichVue"></component>
  <!-- active:当前选中的标签的索引,被选中时的样式-->
  <span
    :class="[active === index ? 'active' : '']"
    class="vueTitle"
    @click="chooseVue(item, index)"
    v-for="(item, index) in data"
  >
    {{ item.name }}
  </span>
  <!-- 动态组件,由is的值来决定<component>的位置渲染哪一个的组件 -->

</template>

<script setup lang="ts">
import { ref,shallowRef } from "vue";
import SonA from "./components/A.vue";
import SonB from "./components/B.vue";
import SonC from "./components/C.vue";

// 动态组件is的值
const whichVue = shallowRef(SonA);
// 点击选择标签后,active表示被选中标签的索引
const active = ref(0);
// 点击事件:标签被点击后,更新whichVue和active的值
const chooseVue = (item: { name: string; com: any }, index: number) => {
  whichVue.value = item.com;
  active.value = index;
};
// 把子组件的名字和组件绑定在一起
const data = shallowRef([
  {
    name: "A组件",
    com: SonA,
  },
  {
    name: "B组件",
    com: SonB,
  },
  {
    name: "C组件",
    com: SonC,
  },
]);
</script>

<style lang="scss">
.active {
  background-color: blue;
}
.vueTitle {
  margin: 10px;
  padding: 5px 10px;
  border: 1px solid #ccc;
  cursor: pointer;
}
</style>

子组件A的代码:

<template>
    <div class="com">
        子组件A.vue的内容
    </div>
</template>

<script setup lang="ts">

</script>

<style scoped lang="scss">
@import "../style.scss";
.com{
    @include sonVueStyle;
}
</style>

子组件B的代码

<template>
  <div class="com">子组件B.vue的内容</div>
</template>

<script setup lang="ts">
</script>

<style scoped lang="scss">
@import "../style.scss";
.com {
  @include sonVueStyle;
}
</style>

子组件C的代码:

<template>
    <div class="com">
        子组件C.vue的内容
    </div>
</template>

<script setup lang="ts">

</script>

<style scoped lang="scss">
@import "../style.scss";
.com{
    @include sonVueStyle;
}
</style>

子组件的样式:

@mixin sonVueStyle{

    height:100px;
    border:2px solid #ccc;
    font-size:20px;
    display: flex;
    justify-content:center;
    align-items: center;
    width: 300px;
    margin: 10px;
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python-逆序数(赛氪OJ)

[题目描述] 在一个排列中&#xff0c;如果一对数的前后位置与大小顺序相反&#xff0c;即前面的数大于后面的数&#xff0c;那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个元素个数为 4 的数列&#xff0c;其元素为 2,4,3,1&#xff0c;则 (2,…

Stable Diffusion 使用详解(8)--- layer diffsuion

背景 layer diffusion 重点在 layer&#xff0c;顾名思义&#xff0c;就是分图层的概念&#xff0c;用过ps 的朋友再熟悉不过了。没使用过的&#xff0c;也没关系&#xff0c;其实很简单&#xff0c;本质就是各图层自身的编辑不会影响其他图层&#xff0c;这好比OS中运行了很多…

使用 Python构建 Windows 进程管理器应用程序

在这篇博客中&#xff0c;我们将探讨如何使用 wxPython 构建一个简单的 Windows 进程管理器应用程序。这个应用程序允许用户列出当前系统上的所有进程&#xff0c;选择和终止进程&#xff0c;并将特定进程保存到文件中以供将来加载。 C:\pythoncode\new\manageprocess.py 全部…

RabbitMQ实现多线程处理接收消息

前言&#xff1a;在使用RabbitListener注解来指定消费方法的时候&#xff0c;默认情况是单线程去监听队列&#xff0c;但是这个如果在高并发的场景中会出现很多个任务&#xff0c;但是每次只消费一个消息&#xff0c;就会很缓慢。单线程处理消息容易引起消息处理缓慢&#xff0…

推荐算法实战-五-召回(上)

一、传统召回算法 &#xff08;一&#xff09;基于物料属性的倒排索引 在离线时&#xff0c;将具有相同属性的物料集合起来&#xff0c;根据一些后验统计指标将物料排序。 当一个用户在线交互发出请求后&#xff0c;提取用户的兴趣标签&#xff0c;根据标签检索相应物料集合…

直方图均衡化

概念 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法&#xff0c;通过拉伸像素强度分布范围来增强图像对比度。 原理 均衡化指的是把一个分布 (给定的直方图) 映射 到另一个分布 (一个更宽更统一的强度值分布)&#xff0c;从而令强度值分布会在整个范围内…

CSS知识点详解:div盒子模型

盒子模型&#xff1a; 边框&#xff1a; border-color&#xff1a;边框颜色 border-width&#xff1a;边框粗细 1.thin 2.medium 3.thick 4.像素值 border-width:5px ; border-width:20px 2px; border-width:5px 1px 6px; border-width:1px 3px 5px 2px; 这个简写属性…

Java二十三种设计模式-责任链模式(17/23)

责任链模式&#xff1a;实现请求处理的灵活流转 引言 在这篇博客中&#xff0c;我们深入探讨了责任链模式的精髓&#xff0c;从其定义和用途到实现方法&#xff0c;再到使用场景、优缺点、与其他模式的比较&#xff0c;以及最佳实践和替代方案&#xff0c;旨在指导开发者如何…

基于springboot框架的电影订票系统_wqc3k

TOC springboot611基于springboot框架的电影订票系统_wqc3k--论文 绪 论 1.1研究背景和意义 随着科学技术的不断发展&#xff0c;计算机现在已经成为了社会的必需品&#xff0c;人们通过网络可以获得海量的信息&#xff0c;这些信息可以和各行各业进行关联&#xff0c;电影…

Selenium + Python 自动化测试22(PO+数据驱动)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了PO模式和unittest框架结合起来使用。 本篇文章我们综合一下之前学习的内容&#xff0c;如先将PO模式、数据驱动思想和我们生成HTML报告融合起来&#xff0c;综…

如何应对突发技术故障和危机:开发团队的应急策略

开发团队如何应对突发的技术故障和危机&#xff1f; 在数字化时代&#xff0c;软件服务的稳定性对于企业至关重要。然而&#xff0c;即使是大型平台&#xff0c;如网易云音乐&#xff0c;也可能遇到突发的技术故障。网页端出现502 Bad Gateway 报错&#xff0c;且App也无法正常…

如何生成随机数(通过rand函数,srand函数,time函数深入讲解)

目录 1. 随机数的生成 2. srand函数 3. time函数 4. 设置随机数的范围 1. 随机数的生成 既然是猜数字游戏&#xff0c;那么最终的数字答案肯定是重要的&#xff0c;我们要如何实现这个随机数的生成呢&#xff1f; 在这个功能上&#xff0c;C语言提供了一个函数叫rand&…

数据库多表设计:深入理解一对多、一对一、多对多关系 【后端 12】

数据库多表设计&#xff1a;深入理解一对多、一对一、多对多关系 在数据库设计中&#xff0c;表之间的关系决定了如何组织和存储数据。常见的表关系包括一对多、一对一和多对多。在不同的业务场景下&#xff0c;我们会选择不同的关系模式进行数据库设计。本文将通过具体案例介绍…

Excel技巧(一)

快捷键技巧 原文链接 选取某一行的数据直到最后一行&#xff1a;【CTRL SHIFT ↓ 】或者选取一行后按住SHIFT键&#xff0c;双击下边线就可以快速选取区域。 如果表格中有多行空行&#xff0c;可以先按CTRL SHIFT END&#xff0c;再按CTRL SHIFT 上下键调整&#xff0c;…

网络安全之xss靶场练习

目录 一、xss靶场练习 1、Ma Spaghet! 2、Jefff 第一个方法 第二个方法 3、Ugandan Knuckles 4、Ricardo Milos 5、Ah Thats Hawt 6、Ligma 7、Mafia​编辑 8、Ok, Boomer 一、xss靶场练习 靶场地址 https://xss.pwnfunction.com/ 页面显示如下 1、Ma Spaghet! 分析…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——6.vector

1.杨辉三角 . - 力扣&#xff08;LeetCode&#xff09; 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 class Solution { public:vector<vector<int>> generate(int numRows) {vector<vector<int>> arr;int i 0;int j 0;for (i…

CSS“叠叠乐”——WEB开发系列16

在现代前端开发中&#xff0c;CSS 是控制网页外观和布局的核心工具。随着项目的复杂化和样式规则的增加&#xff0c;CSS 层叠&#xff08;cascade&#xff09;变得更加重要。为了更好地管理和控制样式规则的应用&#xff0c;CSS 引入了层叠层&#xff08;cascade layers&#x…

Qt入门学什么?

Qt是一个跨平台的C图形用户界面应用程序框架&#xff0c;它为应用程序开发者提供建立图形界面所需的所有功能。Qt框架以其面向对象、易于扩展的特性而受到广泛欢迎&#xff0c;并且支持多种平台&#xff0c;包括桌面、嵌入式和移动平台 。 对于Qt的入门学习&#xff0c;可以通过…

前端3d动画-----平移 transform: translate3d()

必须加这个属性&#xff1a;transform-style: preserve-3d; perspective: 900px; 设置了景深才能感到近大远小的感觉 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

ESP32 分区表介绍

前言 个人邮箱&#xff1a;zhangyixu02gmail.com关于分区表&#xff0c;很多人看了很多资料很可能依旧是一脸懵逼。不知道各位有没有玩过 EEPROM&#xff0c;他可以断电保存数据。这里你也可以理解为分区表将 Flash 中划分出来了一个 EEPROM。虽然这样说从专业的角度是毫无疑问…