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

vue、uniapp中动态添加绑定style、class 9种方法实现

9种方法介绍

  1. 直接使用静态class和style属性:

    • 使用场景:当class和style属性是固定不变的时候,可以直接在模板中写死。
    • 优点:简单直接,没有额外的计算和逻辑。
    • 缺点:无法根据条件动态修改class和style。
  2. 使用v-bind动态绑定class和style属性:

    • 使用场景:当class和style属性需要根据组件的data或props属性动态变化时,可以使用v-bind来动态绑定。
    • 优点:可以根据条件动态修改class和style。
    • 缺点:需要在模板中写表达式,有一定的复杂度。
  3. 使用计算属性来动态生成class和style对象:

    • 使用场景:当class和style属性的计算逻辑比较复杂时,可以使用计算属性来生成class和style对象。
    • 优点:代码可读性好,逻辑清晰。
    • 缺点:需要定义额外的计算属性。
  4. 使用动态绑定的class和style属性:

    • 使用场景:当class和style属性的计算逻辑比较简单时,可以直接在模板中使用表达式来动态生成class和style字符串。
    • 优点:简洁明了,没有额外的计算属性。
    • 缺点:逻辑稍微复杂时,可读性会变差。
  5. 使用数组语法来动态绑定class属性:

    • 使用场景:当class属性需要根据多个条件动态变化时,可以使用数组语法来动态绑定class属性。
    • 优点:可以根据多个条件动态修改class。
    • 缺点:数组语法相对复杂,可读性较差。
  6. 使用动态绑定的style属性:

    • 使用场景:当style属性需要根据组件的data或props属性动态变化时,可以使用动态绑定的style属性。
    • 优点:可以根据条件动态修改style。
    • 缺点:需要在模板中写表达式,有一定的复杂度。
  7. 使用对象语法动态绑定class属性:

    • 使用场景:当class属性需要根据多个条件动态变化时,可以使用对象语法来动态绑定class属性。
    • 优点:可以根据多个条件动态修改class。
    • 缺点:对象语法相对复杂,可读性较差。
  8. 使用计算属性动态绑定style属性:

    • 使用场景:当style属性的计算逻辑比较复杂时,可以使用计算属性来动态绑定style属性。
    • 优点:代码可读性好,逻辑清晰。
    • 缺点:需要定义额外的计算属性。
  9. 使用动态绑定的class和style属性,通过在模板中使用数组和对象语法来动态生成class和style字符串:

    • 使用场景:当class和style属性需要根据多个条件动态变化时,可以使用数组和对象语法来动态绑定class和style属性。
    • 优点:可以根据多个条件动态修改class和style。
    • 缺点:语法相对复杂,可读性较差。

具体实现

在Uniapp和Vue中,可以使用以下9种方法来动态添加绑定style和class:

  1. 使用v-bind指令(或简写为:class:style)来动态绑定class和style属性。可以通过计算属性或直接在模板中使用三元表达式来根据条件动态设置class和style属性。
<template><div :class="{'active': isActive}" :style="{'color': textColor}">Hello World</div>
</template><script>
export default {data() {return {isActive: true,textColor: 'red'}}
}
</script>
  1. 使用v-bind指令(或简写为:class:style)来动态绑定class和style对象。可以在data中定义一个对象,根据条件动态设置class和style对象的属性。
<template><div :class="classObject" :style="styleObject">Hello World</div>
</template><script>
export default {data() {return {classObject: {active: true,'text-color': true},styleObject: {color: 'red',fontSize: '16px'}}}
}
</script>
  1. 使用计算属性来动态生成class和style对象。可以根据组件的data或props属性计算出class和style对象,并在模板中使用计算属性。
<template><div :class="computedClass" :style="computedStyle">Hello World</div>
</template><script>
export default {data() {return {isActive: true,textColor: 'red'}},computed: {computedClass() {return {active: this.isActive,'text-color': this.textColor === 'red'}},computedStyle() {return {color: this.textColor,fontSize: '16px'}}}
}
</script>
  1. 使用动态绑定的class和style属性,通过在模板中使用表达式来动态生成class和style字符串。
<template><div :class="'active ' + (isActive ? 'active' : '')" :style="'color: ' + textColor">Hello World</div>
</template><script>
export default {data() {return {isActive: true,textColor: 'red'}}
}
</script>
  1. 使用数组语法来动态绑定class属性。可以在data中定义一个数组,根据条件动态设置class数组的元素。
<template><div :class="classArray">Hello World</div>
</template><script>
export default {data() {return {isActive: true,isBold: true}},computed: {classArray() {return ['active', {'bold': this.isBold}]}}
}
</script>
  1. 使用动态绑定的style属性,通过在模板中使用对象语法来动态生成style字符串。
<template><div :style="{ color: textColor, fontSize: fontSize + 'px' }">Hello World</div>
</template><script>
export default {data() {return {textColor: 'red',fontSize: 16}}
}
</script>
  1. 使用对象语法动态绑定class属性。可以在data中定义一个对象,根据条件动态设置class对象的属性。
<template><div :class="classObject">Hello World</div>
</template><script>
export default {data() {return {isActive: true,isBold: true}},computed: {classObject() {return {active: this.isActive,bold: this.isBold}}}
}
</script>
  1. 使用计算属性动态绑定style属性。可以根据组件的data或props属性计算出style字符串,并在模板中使用计算属性。
<template><div :style="computedStyle">Hello World</div>
</template><script>
export default {data() {return {textColor: 'red',fontSize: 16}},computed: {computedStyle() {return `color: ${this.textColor}; font-size: ${this.fontSize}px;`;}}
}
</script>
  1. 使用动态绑定的class和style属性,通过在模板中使用数组和对象语法来动态生成class和style字符串。
<template><div :class="['active', { 'bold': isBold }]">Hello World</div><div :style="[styleObject, { 'font-size': fontSize + 'px' }]">Hello World</div>
</template><script>
export default {data() {return {isBold: true,styleObject: {color: 'red'},fontSize: 16}}
}
</script>

相关文章:

vue、uniapp中动态添加绑定style、class 9种方法实现

9种方法介绍 直接使用静态class和style属性&#xff1a; 使用场景&#xff1a;当class和style属性是固定不变的时候&#xff0c;可以直接在模板中写死。优点&#xff1a;简单直接&#xff0c;没有额外的计算和逻辑。缺点&#xff1a;无法根据条件动态修改class和style。 使用v…...

【CicadaPlayer】seek :SeekInCache(int64_t pos)的实现

SuperMediaPlayer::SeekInCache(int64_t pos) 的实现 seek的pos就是pts值。缓冲是list,那么插入的包是按照到达的顺序插入到list的,也就是无排序的。包的pts 正常应该单调连续,即使不单调连续,缓存也不在意。seek的操作主要是先比较pos与mCurrentPos ,pos 比 mCurrentPos …...

【C/C++】x -x 的含义

1、含义 -x 的值&#xff0c;其实就是在x的值的基础上进行按位取反&#xff08;~x&#xff09;之后在增加1所得&#xff08;C语言中&#xff0c;-x实现是用取反1实现&#xff09;也就是说&#xff1a;x & -x x & (~x 1) 2、x 为偶数 当一个奇数 1时&#xff0c;表示…...

[ZenTao]源码阅读:加载自定义任务类型

www/index.php config/config.php framework/base/router.class.php tmp/model/common.php module/common/model.php framework/router.class.php...

hive分区表 静态分区和动态分区

一、静态分区 现有数据文件 data_file 如下&#xff1a; 2023-08-01,Product A,100.0 2023-08-05,Product B,150.0 2023-08-10,Product A,200.0 1、创建分区表 CREATE TABLE sales (sale_date STRING,product STRING,amount DOUBLE ) PARTITIONED BY (sale_year INT, sale_mon…...

java八股文面试[多线程]——ThreadLocal底层原理和使用场景

源码分析&#xff1a; ThreadLocal中定义了ThreadLocalMap静态内部类&#xff0c;该内部类中又定义了Entry内部类。 ThreadLocalMap定了 Entry数组。 Set方法&#xff1a; Get方法&#xff1a; Thread中定义了两个ThreaLocalMap成员变量&#xff1a; Spring使用ThreadLocal解…...

Android hid发送apdu格式数据

在 Android 中&#xff0c;如果你想通过 HID&#xff08;Human Interface Device&#xff09;发送 APDU 格式的数据&#xff0c;通常会涉及 USB HID 设备或蓝牙 HID 设备。HID 协议通常用于键盘、鼠标和其他输入设备&#xff0c;而不是直接与智能卡进行通信。然而&#xff0c;如…...

Unity碰撞检测(3D和2D)

Unity碰撞检测3D和2D 前言准备材料3D2D 代码3D使用OnCollisionEnter()进行碰撞Collider状态代码 使用OnTriggerEnter()进行碰撞Collider状态代码 2D使用OnCollisionEnter2D()进行碰撞Collider2D状态代码 使用OnTriggerEnter2D()进行碰撞Collider2D状态代码 区别3D代码OnCollisi…...

android:控件TextView

一、系统学习Android控制键TextView&#xff0c;我的笔记里面有尝试学着使用自定义控件。 二、具体内容 1.如果在代码中给textView赋值&#xff0c;在xml中也给textView赋值了最后运行出来的结果显示代码中赋的值。因此得出结论&#xff0c;代码中的赋值会覆盖xml所附的值。 …...

3D风速仪 Gill Instruments Limited_R3-50 R3-100 and R3A -100 Manual

R3测量超声波脉冲从上部换能器到相反的下部换能器所花费的时间&#xff0c;并将其与脉冲从下部换能器到上部换能器的时间进行比较。 同样&#xff0c;在其他上下换能器之间比较时间。 如图1所示&#xff0c;每对换能器之间沿轴的空气速度可以从每条轴上的飞行次数计算出来。 …...

深度学习怎么学?

推荐这本小白看的《深度学习&#xff1a;从基础到实践&#xff08;上下册&#xff09;》。 深度学习&#xff1a;从基础到实践&#xff08;上下册&#xff09; 深入浅出的讲述了深度学习的基本概念与理论知识&#xff0c;不涉及复杂的数学内容&#xff0c;零基础小白也能轻松掌…...

WPF 数据验证

WPF提供了能与数据绑定系统紧密协作的验证功能。提供了两种方法用于捕获非法值&#xff1a; 1、可在数据对象中引发错误。 可以在设置属性时抛出异常&#xff0c;通常WPF会忽略所有在设置属性时抛出的异常&#xff0c;但可以进行配置&#xff0c;从而显示更有帮助的可视化指示…...

IDEA的maven想显示层级关系,而非平级

新版和旧版的IDEA的位置不一样&#xff0c;2023.2.1的版本在右上角的“” 这个位置 如图所示&#xff1a; 然后点击按模块分组&#xff1a;...

(八)k8s实战-身份认证与权限

一、认证 User AccountsService Accounts Service Account 自动化&#xff1a; Service Account Admission ControllerToken ControllerService Account Controller 1、Service Account Admission Controller 通过 Admission Controller 插件来实现对 pod 修改&#xff0c…...

数学建模:TOPSIS分析

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 TOPSIS分析法 算法流程 假设有m个评价对象&#xff0c;n个评价指标&#xff0c;首先需要进行指标的正向化&#xff1a; 极大型极小型单点型区间型 然后对正向化后的矩阵进行标准化&#xff0c;得到 Z Z Z…...

【Qt学习】10 利用QSharedMemory实现单例运行

问题 让应用程序只有一个运行实例 QSharedMemory除了可以完成进程间通信&#xff0c;还可以实现应用程序单例化。 解法 首先&#xff0c;看看QSharedMemory的几个函数&#xff1a; 1、QSharedMemory(const QString &key, QObject *parent Q_NULLPTR)构造函数 该构造函数…...

FPGA应用于图像处理

FPGA应用于图像处理 FPGA&#xff08;Field-Programmable Gate Array&#xff09;直译过来就是现场可编程门阵列。是一种可以编程的逻辑器件&#xff0c;具有高度的灵活性&#xff0c;可以根据具体需求就像编程来实现不同的功能。 FPGA器件属于专用的集成电流中的一种半定制电…...

vscode python 无法引入上层目录解决

在vscode 中.vscode 配置如下 { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid830387 “version”: “0.2.0”, “configurati…...

[开发|java] java list 取某个属性最大的项

示例代码: import java.util.*;class Person {private String name;private int age;public Person(String name, int age) {this.name name;this.age age;}public int getAge() {return age;} }public class Main {public static void main(String[] args) {List<Person…...

关闭浏览器的跨域校验

首发博客地址 问题描述 当你访问资源失败&#xff0c;并遇到以下类似提示时&#xff1a; Access to script at 资源路径 from origin null has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrom…...

树突状细胞相关细胞因子的功能及疾病关联

树突状细胞作为免疫系统中核心的抗原呈递细胞&#xff0c;其分泌的多种细胞因子&#xff08;IL-1α、IL-1β、IL-6、TNFα、IL-10&#xff09;在免疫反应的启动、调控及稳态维持中发挥着核心作用。这些细胞因子具有双重调控特性&#xff0c;既是机体抵御病原体入侵的重要屏障&a…...

Taotoken平台Token Plan套餐如何帮助控制每日大赛项目成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken平台Token Plan套餐如何帮助控制每日大赛项目成本 1. 项目背景与成本挑战 在AI应用开发中&#xff0c;尤其是像“每日大赛…...

中兴B863AV3.2-M刷机避坑指南:S905L3A芯片识别、固件选择与Amlogic USB Burning Tool 2.2.0配置详解

中兴B863AV3.2-M刷机全流程精解&#xff1a;从芯片识别到固件烧录的进阶实践 在智能电视盒的玩家圈子里&#xff0c;中兴B863AV3.2-M因其出色的硬件配置和可玩性备受关注。这款搭载Amlogic S905L3A芯片的设备&#xff0c;通过刷机可以解锁更多功能&#xff0c;但过程中暗藏的&q…...

ESXi 7.0升8.0后VM启动失败?硬件版本降级就搞定

很多运维人员将ESXi 7.0成功升级到8.0后&#xff0c;会遇到一个棘手问题&#xff1a;原有虚拟机&#xff08;VM&#xff09;无法启动&#xff0c;弹出错误提示“incompatible hardware version”&#xff08;不兼容的硬件版本&#xff09;。其实故障核心原因很明确&#xff1a;…...

ImageGlass完整指南:高效轻量的Windows图片查看神器

ImageGlass完整指南&#xff1a;高效轻量的Windows图片查看神器 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows系统自带的图片查看器功能单一而烦恼&#xf…...

2026年福建莆田大平层全屋高端定制选型指南

一、引言福建莆田近年来经济发展迅速&#xff0c;居民生活水平不断提高&#xff0c;大平层住宅逐渐成为高端改善型住房的热门选择。在全屋高端定制方面&#xff0c;消费者面临着众多品牌的选择。本指南旨在为莆田的大平层业主提供一份合规、靠谱且适配自身需求的高端定制品牌选…...

抖音批量下载器终极指南:3步轻松搞定无水印视频下载

抖音批量下载器终极指南&#xff1a;3步轻松搞定无水印视频下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...

记一次 Ollama 部署 GGUF 模型后的异常输出修复

最近在 Ollama 中部署了一个来自 Hugging Face 的 GGUF 模型&#xff1a; hf.co/WithinUsAI/Opus4.7-GODs.Ghost.Codex-4B.GGuF:Q4_K_M部署完成后&#xff0c;原本只是想简单测试一下模型是否能正常对话&#xff0c;于是在终端里输入&#xff1a; hello结果模型并没有像普通聊天…...

Gitee Scan:关键领域软件工厂的安全检测能力分析

Gitee Scan&#xff1a;关键领域软件工厂的安全检测能力分析 文章概述 软件供应链安全正成为互联网、金融、国防等关键领域关注的焦点。Gitee Scan 是 Gitee DevSecOps 平台中集成的安全检测组件&#xff0c;提供 SAST&#xff08;静态应用安全测试&#xff09;、SBOM&#xff…...

苹果手机快速开启开发者模式教程(iOS 16+)

在Mac Xcode 给 iPhone 安装自签 IPA、做苹果 App 打包测试时,iOS 16 及以上的系统第一次启动这类"非 App Store 来源"的 App,都会弹一个 “需要启用开发者模式” 的提示,点"好"就退出了,App 根本进不去。 这是苹果从 iOS 16 开始加的安全限制:任何用开发…...