三、基础篇 vue Class与Style绑定

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是 attribute,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。

绑定HTML Class

对象语法

我们可以传给 v-bind:class 一个对象,以动态地切换 class:

<template><div class="content"><div :class="{ active: isActive,'text-danger': hasError }">vue Class与Style绑定</div></div>
</template><script>
export default {data() {return {isActive: true,hasError: false,}},
}
</script><style scoped>
.active{color: red;
}
</style>

绑定的数据对象不必内联定义在模板里:

data: {classObject: {active: true,'text-danger': false}
}

这样也是可以的

最后推荐写在计算属性里:

data: {isActive: true,error: null
},
computed: {classObject: function () {return {active: this.isActive && !this.error,'text-danger': this.error && this.error.type === 'fatal'}}
}

数组语法

<template><div class="content"><div :class="[activeClass, errorClass]">vue Class与Style绑定</div></div>
</template><script>
export default {data() {return {activeClass: 'active',errorClass: 'text-danger',}},
}
</script><style scoped>
.active {color: red;
}
.text-danger{font-size: 16px;
}
</style>

想根据条件判断切换class,可以用三元表达式:

<div :class="[isActive ? activeClass : '', errorClass]"></div>

这样写将始终添加 errorClass,但是只有在 isActive 是 truthy[1] 时才添加 activeClass

不过,当有多个条件 class 时这样写有些繁琐。所以在数组语法中也可以使用对象语法:

<div :class="[{ active: isActive }, errorClass]"></div>

用在组件上

例如,如果你声明了Home这个组件:

<template><div id="app"><!-- 组件形式可不写闭合标签 --><home /> </div>
</template><script>
import Home from '@/views/Home/Home'//引入页面export default {name: 'App',components: {//注册为组件Home}
}
</script>

然后在使用它的时候添加一些 class:

<home class="baz boo"/> 

组件上的class 也会渲染出来

对于带数据绑定 class 也同样适用

绑定内联样式

对象语法

v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名:

<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {activeColor: 'red',fontSize: 30
}

直接绑定到一个样式对象通常更好,这会让模板更清晰:

<div v-bind:style="styleObject"></div>
data: {styleObject: {color: 'red',fontSize: '13px'}
}

同样的,对象语法常常结合返回对象的计算属性使用。

数组语法同class一样

多重值

从 2.3.0 起你可以为 style 绑定中的 property 提供一个包含多个值的数组,常用于提供多个带前缀的值,例如:

<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex

译者注
[1] truthy 不是 true,详见 MDN 的解释。

后续会持续更新😁......

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

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

相关文章

【面试突击】计算级网络面试实战(上)

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

2024年美赛美国大学生数学建模竞赛ABCDEF题思路资料汇总贴

下文包含&#xff1a;2024年美国大学生数学建模竞赛&#xff08;美赛&#xff09;A- F题思路解析、选题建议、代码可视化及如何准备数学建模竞赛&#xff08;2号发&#xff09; C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资料&…

关于跨域引用界面cookie不支持的处理

缘由&#xff1a;项目上与其他公司做对接&#xff0c;对方使用iframe引用我方项目&#xff0c;不使用nginx做代理&#xff0c;设置了老三样跨域请求头&#xff08;Access-Control-Allow&#xff09;&#xff0c;发现跨域cookie不识别&#xff0c;每次请求时返回头都携带新cooki…

docker filebeat 将日志多级目录和多维json数据日志同步到es

注 使用的时候先调试调试配置,调试成功在尝试写入es,如果es写入失败就是es账户.密码/白名单.和index未创建的问题,细节可以留言 setup.template.priority 模板优先级 调整这个可以配置一台机器多个filebeat 容器启动 多级目录日志和多维josn日志结构 filebeat.inputs:- typ…

如何使用ThinkPHP框架(thinkphp8.0)创建定时任务?

1、安装定时任务composer包 composer require easy-task/easy-task 2、创建命令行处理类文件 php think make:command Task task 会生成文件&#xff1a;app\command\Task.php 将Task.php文件内容修改如下&#xff1a; <?php declare (strict_types1);namespace app…

Jira REST API_检索多选自定义字段的可用选项

文章目录 背景解决方案背景 Jira Server/Data Center REST API不提供简单检索多选项自定义字段可用的所有选项的方法,只有 rest/api/2/customFieldOption/{id} API 获取指定的id的option值。 本文提供一种解决方法,,用于在通过 REST API 创建或编辑问题之前检索所有自定义字…

Linux:为什么要打包和压缩?

我们在Linux中已经学习了zip/unzip和tar两种方式来打包压缩文件&#xff0c;那么为什么要打包和压缩呢&#xff1f; 最直接的目的就是为了便于网络传输&#xff0c;防止传输过程中的数据丢失 举例实践 我们做个示例演示一下 我们创建一百个文件 我们将文件都放到dir里面来&…

UDP传输总丢包?常用的解决方式在这里!

UDP是一种无连接的协议&#xff0c;传输数据时不建立连接&#xff0c;因此可能导致数据包丢失。UDP丢包是指在传输过程中由于各种原因导致数据包未能到达目的地。UDP丢包会影响传输的质量和效率&#xff0c;导致数据损失、延迟&#xff0c;甚至导致传输失败。本文将分析UDP丢包…

上门按摩APP系统公众号H5搭建能为客户带来哪些便捷。

大家好&#xff01;今天我来给大家介绍一下上门按摩系统H5搭建。你有没有曾经因为工作疲劳、肌肉酸痛而感到身体不适&#xff1f;或者是因为长时间坐在电脑前&#xff0c;感觉脖子和肩膀快要僵硬了&#xff1f;如果你有这样的困扰&#xff0c;那么上门按摩系统公众号绝对是你的…

高光谱分类论文解读分享之基于多模态融合Transformer的遥感图像分类方法

IEEE TGRS 2023&#xff1a;基于多模态融合Transformer的遥感图像分类方法 题目 Multimodal Fusion Transformer for Remote Sensing Image Classification 作者 Swalpa Kumar Roy , Student Member, IEEE, Ankur Deria , Danfeng Hong , Senior Member, IEEE, Behnood Ras…

Hive 数据迁移

一、需求 同步集团的数据到断直连环境。 二、思路 三、同步数据&#xff08;方案&#xff09; 1、环境&#xff1a;断直连模拟环境 2、操作机器&#xff1a;ETL 机器 XX.14.36.216 3、工作路径&#xff1a;cd /usr/local/fqlhadoop/hadoop/bin 4、执行命令&#xff1a; 命令…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT&#xff1a;从简洁美到深度思考的文本生成之旅 近年来&#xff0c;文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中&#xff0c;文心一言和ChatGPT作为两个备受瞩目的工具&#xff0c;各自以独特的优势展现在用户面前。本文将…

【cuda】Visual Studio中进行CUDA程序的性能评估

在Visual Studio中使用Nsight进行CUDA应用程序的性能评估可以按照以下步骤进行&#xff1a; 步骤 1: 准备工作 确保已经安装了以下组件&#xff1a; 最新版本的NVIDIA驱动。NVIDIA Nsight Visual Studio Edition&#xff08;通常与CUDA Toolkit一起安装&#xff09;。Micros…

history 模式刷新 404 问题解决方法

在使用 Vue Router 的 history 模式时&#xff0c;刷新页面可能会导致出现 404 错误。这是因为 history 模式依赖于浏览器的 history.pushState API 来管理路由状态&#xff0c;而刷新页面时浏览器会向服务器发送请求&#xff0c;服务器无法正确地解析这些路由并返回对应的页面…

网络设备自动巡检脚本

简介 工作中经常需要对客户的网络设备进行巡检&#xff0c;之前都是用SecureCRT开启记录Log Session&#xff0c;依次远程登录到每个设备上&#xff0c;依次输入巡检命令收集设备巡检信息&#xff1b; 现在希望利用Python能够实现自动登录设备&#xff0c;自动抓取巡检信息&am…

使用新版IDEA社区版创建一个springboot项目(完整详细版)

目录 一、添加依赖二、下载JDK三、配置Maven阿里云镜像Idea中的maven配置当前项目新项目&#xff08;即默认的配置&#xff09; 四、创建项目四、测试项目错误1错误2错误3完整的pom.xml测试结果 IDEA各版本下载链接&#xff1a;https://www.jetbrains.com/zh-cn/idea/download/…

vue之虚拟滚动

一、解决的问题 对于大量数据的懒加载&#xff0c;我们可以使用虚拟滚动的技术。虚拟滚动的原理是只渲染可视区域内的数据&#xff0c;当用户滚动时&#xff0c;动态计算并渲染新的可视数据&#xff0c;从而实现大数据量的流畅滚动。 在Vue中&#xff0c;我们可以使用第三方库…

【Dynamo学习笔记】基础入门

目录 前言1 Dynamo的界面2 节点的操作3 几何形体的创建与编辑3.1 几何形体的创建3.1.1 直线3.1.2 圆形3.1.3 多边形3.1.4 长方体3.1.5 球体 3.2 几何形体的编辑3.2.1 坐标点的平移复制3.2.2 几何形体的平移复制3.2.3 几何形体的镜像复制3.2.4 几何形体的旋转复制3.2.5 几何形体…

vue3获取路由地址 || vue3路由跳转

import { useRouter } from vue-routerconst router useRouter() state.route router.options.history.location //获取路由path地址router.push(/pleasant) //路由跳转

全方位提升用户数字化体验的解决方案

前言 在数字化的世界中&#xff0c;用户体验越来越成为企业关注的焦点&#xff0c;然而&#xff0c;用户体验极具主观性&#xff0c;科学地评估用户体验&#xff0c;建立科学的量化体系是难上加难。今天介绍全方位提升用户数字化体验的解决方案&#xff0c;方案通过全面观测用…