05Vue入门教程Vue动态样式绑定
1. 简介
本小节我们将介绍 Vue 中如何动态绑定样式。包括 Class 的绑定、内联样式 Style 的绑定。掌握样式绑定的多种形式是其中的重点难点。同学们可以在学完本小节之后对样式的绑定方式加以总结,再通过反复的练习来加深印象。 2. 木子解释
操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。 ---- 官方定义
通过 v-bind 指令给 DOM 元素动态绑定 Class 和 Style,一般用于根据不同数据状态切换元素样式的场景下。 2.绑定元素的 Class
我们可以通过数组和对象的两种形式绑定元素的 Class。 2.1 对象2.1.1 对象语法
通过传给 v-bind:class 一个对象,以动态地切换 class:
代码解释: 上面的语法表示 show 这个 class 存在与否将取决于数据属性 isShow 是否为真值。
具体示例:
实例演示 Document Hello !
"运行案例" 可查看在线运行效果
代码解释: HTML 代码第 2 行,我们给 p 绑定样式,当 isHide 为真值时, 其渲染结果为 ,否则 。 打开控制台,修改 vm.isHide 的值可以动态改变页面效果。 2.1.2 与普通的 class 属性共存
此外, v-bind:class 指令也可以与普通的 class 属性共存。 语法:
当有如下模板:
和如下 data: data: { isShow: true, hasError: false }
结果渲染为:
代码解释: 当 isShow 或者 hasError 变化时,class 列表将相应地更新。
例如,如果 hasError 的值为 true , isShow 的值为 true ,class 列表将变为 "defaultClass show text-danger" 。
例如,如果 hasError 的值为 true , isShow 的值为 false ,class 列表将变为 "defaultClass text-danger" 。
在之前介绍的案例中,我们将绑定的数据对象内联定义在模板里, 这样显得比较繁琐。其实,我们可以统一定义在一个 classObject 中:
实例演示 Document Hello !
"运行案例" 可查看在线运行效果
结果渲染为: 代码块1
代码解释: HTML 代码中,我们首先给 p 一个固定样式 defaultClass, 然后通过 classObject 给 p 绑定样式。 JS 代码 第 6-9 行,我们定义了数据 classObject,它有两个属性:1. 属性 show,值为 true,2. 属性 text-danger,值为 false。所以,最后页面渲染的效果是: 2.1.3 利用计算属性绑定样式
我们也可以在这里绑定一个返回对象的计算属性。这是一个常用且强大的模式:
实例演示 Document
"运行案例" 可查看在线运行效果
结果渲染为:
代码解释: HTML 代码中,我们通过 classObject 给 p 绑定样式。 JS 代码 第 6-11 行,我们定义了计算属性 classObject,它返回一个对象,该对象有两个属性:1. 属性 show,值为 true,2. 属性 text-danger,值为 false。所以,最后页面渲染的效果是: 2.2 数组语法
我们可以把一个数组传给 v-bind:class ,以应用一个 class 列表:
实例演示 Document Hello !
运行案例点击 "运行案例" 可查看在线运行效果
渲染为:
代码解释: 在 HTML 代码中,我们通过数组给 p 绑定样式,数组中有 classA 和 classB 两个值。 在 JS 代码第 6-7 行定义了 classA 和 classB 两个字符串,它的格式和元素 class 的格式相同,不同的样式类之间以空格相隔。
如果你也想根据条件切换列表中的 class,可以用三元表达式:
这样写将始终添加 classB 的样式,但是只有在 isShow 为真时才添加 showClass 。
不过,当有多个条件 class 时这样写有些繁琐。所以在数组语法中也可以使用对象的形式来表达数组中的某一项:
代码解释: 在 HTML 中,p 绑定一个样式数组,数组第一项是一个对象表达式 { showClass: isShow }。当 isShow 为 true 时样式最终绑定为: ;当 isShow 为 false 时样式最终绑定为: ; 3. 绑定内联样式
和 Class 的绑定一样,Style 的绑定同样可以通过数组和对象的两种形式。 3.1 对象语法
v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名:
实例演示 Document
"运行案例" 可查看在线运行效果
渲染为:
代码解释: 在 HTML 代码中,我们给 p 绑定 background-color 和 width 两个内联样式,它们的值在 data 中定义。
在模板中写较为复杂的表达式语法显得比较繁琐,通常直接绑定到一个样式对象更好,这会让模板显得更加清晰:
实例演示 Document
"运行案例" 可查看在线运行效果
渲染为: 代码块1
代码解释: 在 HTML 代码中,我们给 p 绑定数据 styleObject,它们的值在 data 中定义。 3.2 数组语法
v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上:
实例演示 Document
"运行案例" 可查看在线运行效果
渲染为: 4. 小结
本小节我们学习了如何通过 v-bind 来动态绑定样式。主要有以下知识点: 通过 v-bind:class 动态绑定元素的 Class; v-bind:style 动态绑定元素的内联样式; 如果通过数组和对象的形式给 v-bind:class 和 v-bind:style 赋值。
没有了高薪光环,互联网行业正在失去年轻人去年开始,互联网行业仿佛衰神附身,不是因为垄断被罚,就是传来规模缩减的消息,互联网高光不再,倒闭业务关停裁员等新闻屡见不鲜。有媒体粗略统计,去年全年以来,80以上的中概股公司出现股
幻16值得入手吗?谈谈这几天的真实感受鱼与熊掌不可兼得,在笔记本电脑行业,想兼具轻薄和性能是一件很难的事情,各大厂商也为此推出了不少的产品,值得一提就是ROG的幻系列。今年ROG幻系列全面升级,据说之前备受吐槽的几点,
哪吒汽车完成超20亿元新融资,拟今年赴港IPO文福布斯中国据天眼查官网显示,2月21日,哪吒汽车品牌所属公司合众新能源(下称哪吒汽车)已在近期完新一轮轮超过20亿元人民币的融资,主要投资机构包括中国中车集团旗下的中车基金和深圳
基于Ubuntu18。04安装perf工具本文基于Ubuntu18。04系统,介绍Linux性能分析工具perf的安装方法。输入perf命令,提示rootubuntuhomerunperfCommandperfnotfou
php操作redis大全php连接redis测试lt?phpredisnewRedis()redisconnect(127。0。0。1,6379)serveripportredisauth(mypassw
现代军事装备的显著特点随着世界形势的复杂多变,战争的危险性可能会越来越大。立足于快速机动信息激光制导电子网络大数据区块链等新时代全新的发展态势和军事斗争新理念,军事装备的总体性能和质量与上世纪相比有了质
微信支付取消后,大家账上的余额会清零吗?大家应该都知道,在不久的将来,数字人民币马上就要到来了。现在大家也都能够通过手机软件商店来进行下载和使用。而数字人民币刚一出来,可以说激起了人们的热议。表示非常看到数字人民币的出现
开始干活了今天主要做了三件事,一是nginx的配置,一是node项目的优化,一是开发了一个接口。我现在接手的这个项目不是像通常的vue项目,启动起来就能开发了。而是前端静态文件node后台,
部标808协议解析部标808协议解析前言HTTP协议大家应该都比较熟悉,不过我们使用HTTP协议的时候一般不会关心HTTP协议底层到底是怎么传输数据的。像ApacheTomcat等现成的第三方工具已
充电5分钟开100km,4。1秒破百的奥迪etronGT,到底香不香?在通过奥迪etron这台纯电动中大型SUV打响了etron新能源铭牌复兴的第一枪之后,奥迪汽车迅速调转枪头,将第二个目标瞄准为了四门轿车。但与我们料想的现有家族电气化不同,奥迪于2
10万级纯电代步车选这几款车不会吃亏,最高续航超600公里随着竞争的愈发激烈,各大品牌推出车型的性价比也越来越高。而这些主流自主品牌的纯电车型,有着超400公里的续航里程,售价却仅要10万出头,本期就来为大家推荐4款自主品牌出品的10万级