当前位置: 首页 > article >正文

vue3入门教程:Class和Style绑定

Class绑定

Class绑定可以通过多种方式实现,包括对象语法、数组语法和计算属性。

对象语法

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

<template>
  <div :class="{ active: isActive, 'text-danger': hasError }"></div>
</template>

<script setup>
import { ref } from 'vue'

const isActive = ref(true)
const hasError = ref(false)
</script>

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

数组语法

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

<template>
  <div :class="[activeClass, errorClass]"></div>
</template>

<script setup>
import { ref } from 'vue'

const activeClass = ref('active')
const errorClass = ref('text-danger')
</script>

在这个例子中,activeClasserrorClass都将被应用。

计算属性

当需要根据复杂的逻辑来动态计算类时,可以使用计算属性。例如:

<template>
  <div :class="classObject"></div>
</template>

<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>

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

Style绑定

Style绑定同样支持对象语法、数组语法和计算属性。

对象语法

对象语法允许通过对象的键值对形式来动态绑定样式。键是CSS属性名(使用驼峰命名法),值是对应的样式值。例如:

<template>
  <div :style="{ color: activeColor, fontSize: fontSize + 'px' }">Style绑定</div>
</template>

<script setup>
import { ref } from 'vue'

const activeColor = ref('red')
const fontSize = ref(14)
</script>

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

数组语法

数组语法允许你绑定多个样式对象,这些样式对象会合并应用到同一个元素上。例如:

<template>
  <div :style="[baseStyles, overridingStyles]">多个样式绑定</div>
</template>

<script setup>
import { ref } from 'vue'

const baseStyles = ref({ color: 'blue', fontSize: '12px' })
const overridingStyles = ref({ fontWeight: 'bold' })
</script>

在这个例子中,baseStylesoverridingStyles两个样式对象会合并应用到div元素上。如果有重复的CSS属性(如color),overridingStyles中的值会覆盖baseStyles中的值。

计算属性

当需要根据复杂的逻辑来动态计算样式时,可以使用计算属性。例如:

<template>
  <div :style="computedStyle">计算属性绑定样式</div>
</template>

<script setup>
import { ref, computed } from 'vue'

const isActive = ref(true)
const isError = ref(false)

const computedStyle = computed(() => {
  return {
    color: isActive.value ? 'green' : 'red',
    border: isError.value ? '2px solid red' : 'none'
  }
})
</script>

在这个例子中,computedStyle是一个计算属性,它根据isActiveisError的值来动态计算样式对象。

通过组合式API,Vue 3提供了灵活且强大的方式来动态地绑定Class和Style,使得开发者能够根据组件的状态来动态地改变元素的外观。


http://www.kler.cn/a/454460.html

相关文章:

  • 【Unity开发】低版本HDRenderPipeline升级到HDRP14.x版本问题笔记
  • Android OpenGl(二) Shader
  • C++ 泛编程 —— 嵌套使用模板类
  • 商品线上个性定制,并实时预览3D定制效果,是如何实现的?
  • 依图科技简介
  • 记录一次前端绘画海报的过程及遇到的几个问题
  • Oracle 数据库执行计划的查看与分析技巧
  • 「下载」阿里云智慧办公园区解决方案:打造全息数字园区,助力商业地产数字化转型
  • 观察者模式和发布-订阅模式有什么异同?它们在哪些情况下会被使用?
  • 亚远景-ISO 21434标准下的汽车网络安全:风险评估与管理的关键实践
  • springboot485基于springboot的宠物健康顾问系统(论文+源码)_kaic
  • 每日小题打卡
  • AI多模态技术介绍:理解多模态大语言模型的原理
  • 华为OD E卷(100分)38-数组拼接
  • 基于Android实现的2048小游戏
  • Effective C++ 条款 12:复制对象时勿忘其每一个成分
  • .NET 8.0 项目升级到 .NET 9.0
  • 利用Java爬虫速卖通按关键字搜索AliExpress商品
  • 流量主微信小程序工具类去水印
  • 基于大涡模拟与中尺度数值天气模式的精细化风场模拟
  • 云渲染,Enscape、D5、Lumion渲染提速教程
  • Cadence学习笔记 11 PCB中器件放置
  • 嵌入式学习-QT-Day03
  • VB.NET在 Excel 二次开发中的全面应用
  • NLP 中文拼写检测开源-03-hunspell 拼写纠正算法入门介绍 CSC
  • python实现根据搜索关键词爬取某宝商品信息