【vue小知识】给DOM元素动态的添加上一个类||v-bind的妙用

17 篇文章 6 订阅
3 篇文章 0 订阅

在这里插入图片描述
😉博主:初映CY的前说(前端领域) ,📒本文核心:vue文件怎么给DOM元素加上一个类

项目场景:

在前端页面逻辑操作中通常是存在click事件,添加点击效果是为了让页面操作起来更加的有操作性与互动性,那么有什么方式可以实现当我点击自动地为当前的DOM元素添加上一个属于它的类/或多个?
博主经常用判断是否点击当前项的地方,当我在页面上有点击某处,某处就高亮显示,其他取消高亮效果。

前言

DOM介绍

DOM是指文档对象模型(Document Object Model),是一种对于XML或HTML文档的内容进行抽象化和规范化的方法。DOM将整个文档视为一个树型结构,树的每个分支都表示文档中的一个元素,从而可以通过编程的方式来访问和修改文档的内容。

DOM可以通过JavaScript来访问,并且可以通过JavaScript来改变HTML或XML文档的结构、样式和内容。具体来说,DOM可以让开发者通过代码来增加、修改或删除HTML或XML文档中的元素、属性和文本,从而实现对网页的动态操作和交互。

在前端开发中,DOM是非常重要的一部分,因为它可以帮助开发者实现对网页的动态操作和交互,从而提高用户体验。同时,也可以通过DOM来实现一些比较复杂的功能,例如表单验证、数据检索、数据筛选和展示等。

DOM说白了就是我们在页面上看到的由HTML标签解析后的产物

v-bind介绍
v-bind是Vue.js提供的一个指令,用于动态绑定属性。它可以绑定的属性包括class、style、src、href等。通过v-bind指令,可以将Vue实例中的数据绑定到HTML元素的属性上,从而实现数据和视图的实时同步。v-bind指令通常使用简写方式“:”来表示,例如“:class”、“:style”等。下面是v-bind的使用示例

<template>
  <div :class="{'active': isActive}"></div>
  <div v-bind:class="{'active': isActive}"></div>
</template>

在上述示例中,isActive是Vue实例中定义的数据属性,通过v-bind指令与HTML元素的class、src、href属性进行绑定。当Vue实例中的数据发生改变时,绑定的HTML元素属性也会自动更新。

动态添加类:

在 Vue 中,可以通过绑定 class 的方式动态添加类。

我们可以使用 v-bind 或简写的 : 来绑定 class,然后在需要使用 class 的属性上使用绑定变量。

例如,假设我们有一个 data 中的属性 isActive ,我们希望当这个属性值为 true 时,添加一个名为 active 的类。

<!-- 绑定一个类 -->
<div :class="{ active: isActive }"></div>

<!-- 绑定多个类 -->
<div :class="{ active: isActive, 'text-red': isRed }"></div>

代码演示:

此处我是在App.vue文件下写的,下面这段代码可以直接CV到自己的App.vue文件中去。

结构说明:

我创建了一个div给他设置了一个box1的的类,当我点击之后我i希望加上另外一个类来改变当前的显示效果。

<template>
  <div id="app">
    <div class="box1" 
    :class="{ box2: isClick ===true,box3:isClick ===true }" @click="changeColor()">
    </div>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      isClick:false
    }
  },
  methods:{
    changeColor(){
      this.isClick=true
    }
  }
}
</script>

<style lang="scss" scoped>
#app {
  text-align: center;
  margin-top: 120px;
  .box1 {
    margin: auto;
    width: 600px;
    height: 600px;
    background-color: teal;
  }
  .box2{
    background-color: orange;
  }
  .box3{
    height: 200px;
  }
}
</style>

此刻打开页面如下所示:
在这里插入图片描述
触发点击事件之后:
在这里插入图片描述
当我点击操作后, :class="{ box2: isClick ===true,box3:isClick ===true }"这段代码将进行一个判断,当检测到isClick 为true就加上我所写的类。
如上面我所书写的代码所示,它会进行一个判断对比,当isClick的值为true时,我们的box2的黄色背景就加上去了。同理,这是一个对象可以支持多个属性进行一个判断,也是为true的时候,我们的box3这个类就加上去,修改了我们盒子的大小。这种写法经常见在逻辑判断的场景中,大家得务必学会呦!

vue、javaScript专栏介绍:
博主是一名从事前端开发的工作者,截止到当前时间节点,已经完成了javaScript与vue2的基础实操的知识点整理,内置博主很多实践上的经验与今年以来博主所收集的面试提集合等等。我推出这样的专栏很简单–》我们一起成长,朝着自己的方向前进!
vue专栏:vue2专栏
javaScript专栏:javaScript专栏

至此本文结束,愿你有所收获!
期待大家的关注与支持! 你的肯定是我更新的最大动力!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初映CY的前说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值