学习 Vue 的时候觉得样式绑定很简单,但是使用的时候总是容易搞晕自己。因为 :class 和 :style 里的数组语法和对象语法和 data 里绑定的值是不太一样的。这篇文章就简单对 Vue 绑定做个总结。
操作元素的class列表和内联样式是数据绑定的一个常见需求,因为它们都是属性,所以可用v-bind处理,通过表达式计算出字符串结果即可。不过字符串拼接麻烦且易错。因此,在将v-bind用于class和style时,Vue做了专门增强,表达式结果类型除了字符串之外,还可是对象或数组。
- Class绑定
- Style绑定
绑定Class
对象语法
data 里的属性是负责 toggle 是否要这个 class,也就是一般定义 Boolean 类型的值。
<div :class="{ active: isActive, 'text-danger': hasError }"></div>
这里用 isActive 和 hasError 定义是否需要 active 和 text-danger 类。
data: { isActive: true, hasError: false }
渲染为
<div class="active"></div>
数组语法
data 里负责定义 CSS 类名。
<div :class="[activeClass, errorClass]"></div>
这里定义了 activeClass 和 errorClass 的 CSS 类名是 active 和 text-danger。
data: { activeClass: 'active', errorClass: 'text-danger' }
渲染为
<div class="active text-danger"></div>
混合写法
可以用混合的形式来绑定 class,即数组语法里写对象语法。所以 data 里的数据主要用于:
- 是否需要某个 class
- 定义 "class" 里面的类名
<div :class="[{ active: isActive }, errorClass]"></div>
这里定义了 errorClass 的 CSS 类名为 text-danger,并用 isActive 定义是否需要 active 类。
data: { errorClass: 'text-danger', isActive: true }
渲染为
<div class="active text-danger"></div>
绑定Style
对象语法
data 里的属性是定义 style 里的值。与 class 不一样,class 是定义是否要这个 class的。
<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
这里定义了 style 里的 color 和 font-size 的值。
data: { activeColor: 'red', fontSize: 30 }
渲染为
<div style="color: red; font-size: 30px"></div>
数组语法
可以绑定多个样式对象到 style 上
<div :style="[baseStyles, overridingStyles]"></div>
这里在 data 里用 styleObject 定义了 color 和 font-size,再用 overridingStyles 定义了 background 和 margin。然后在组件里用数组进行混合绑定。
data: { styleObject: { color: 'red', fontSize: '13px' }, overridingStyles: { background: 'green', margin: '13px' } }
渲染为
<div style="color: red; font-size: 13px; background: green; margin: 13px;"></div>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 小米.2020-我想在城市里当一个乡下人【滚石】【FLAC分轨】
- 齐豫.2003-THE.UNHEARD.OF.CHYI.3CD【苏活音乐】【WAV+CUE】
- 黄乙玲1986-讲什么山盟海誓[日本东芝版][WAV+CUE]
- 曾庆瑜1991-柔情陷阱[台湾派森东芝版][WAV+CUE]
- 陈建江《享受男声》DTS-ES6.1【WAV】
- 群星《闪光的夏天 第5期》[FLAC/分轨][392.38MB]
- 徐小凤《三洋母带》1:1母盘直刻[WAV+CUE][981M]
- 王菲1995《菲靡靡之音》[香港首版][WAV+CUE][1G]
- 《双城之战》主题小游戏现已上线 扮演金克丝探索秘密基地
- 《霍格沃茨之遗》PS5Pro画面对比:光追性能显著提升
- 《怪猎荒野》PS5Pro主机版对比:B测性能都不稳定
- 黄宝欣.1992-黄宝欣金装精选2CD【HOMERUN】【WAV+CUE】
- 群星.1996-宝丽金流行爆弹精丫宝丽金】【WAV+CUE】
- 杜德伟.2005-独领风骚新歌精选辑3CD【滚石】【WAV+CUE】
- 安与骑兵《心无疆界》[低速原抓WAV+CUE]