排名
3
文章
317
粉丝
22
评论
14
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

我们可以传给 v-bind:class 一个对象,以动态地切换 class:
- <div v-bind:class="{ active: isActive }"></div>
上面的语法表示 active 这个 class 存在与否将取决于数据属性 isActive 的 ture还是false。
你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。当有如下模板:
- <div
- class="static"
- v-bind:class="{ active: isActive, 'text-danger': hasError }"
- ></div>
和如下 data:
- data: {
- isActive: true,
- hasError: false
- }
结果渲染为:
- <div class="static active"></div>
当 isActive 或者 hasError 变化时,class 列表将相应地更新。例如,如果 hasError 的值为 true,class 列表将变为 "static active text-danger"。
绑定的数据对象不必内联定义在模板里:
- <div v-bind:class="classObject"></div>
js:
- data: {
- classObject: {
- active: true,
- 'text-danger': false
- }
- }
渲染的结果和上面一样。我们也可以在这里绑定一个返回对象的计算属性。这是一个常用且强大的模式:
- <div v-bind:class="classObject"></div>
js:
- data: {
- isActive: true,
- error: null
- },
- computed: {
- classObject: function () {
- return {
- active: this.isActive && !this.error,
- 'text-danger': this.error && this.error.type === 'fatal'
- }
- }
- }
循环里边可以使用循环的bool值来判断样式是否作用
代码如下:
- <image :src="`${CssImgPath}/imgs/arrow_mini.png`" :class="{'icon-arrow-open':item.isOpen}" class="icon-arrow" />
比如这里就是根据循环项里边的isOpen来确定图片是否存在 icon-arrow-open样式,这个样式就是用来旋转图片的
数组语法
我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:
- <div v-bind:class="[activeClass, errorClass]"></div>
js:
- data: { activeClass: 'active', errorClass: 'text-danger'}
渲染为:
- <div class="active text-danger"></div>
如果你也想根据条件切换列表中的 class,可以用三元表达式:
- <div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价