Class与Style绑定

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

一、绑定HTML Class

  1.对象语法

  我们可以传给v-bind:class一个对象,以动态地切换class。注意,v-bind:class指令可以与普通的class特性共存。代码示例如下:

<div id="example" class="static" v-bind:class="{'didi-orange':isRipe,'didi-green':isNotRipe}"></div>var vm = new Vue({el:'example',data:{isRipe:true,isNotRipe:false              }  
})

  渲染为:

<div id='example' class='static didi-orange'></div>

  当isRipe和isNotRipe变化时,class列表将相应地更新。例如,如果isNotRipe变为true,那么class列表将变为"static didi-orange didi-green"。(当然,一般情况下,v-bind:class绑定的对象中只有一个class会生效,这取决于用户自己的设置。)

  注:尽管可以用Mustache标签绑定class,比如class="{{className}}",但是我们不推荐这种写法和v-bind:class混用。

  我们也可以直接绑定数据中的一个对象,代码示例如下:

<div id="example" v-bind:class="ddfe"></div>
var vm = new Vue({el:'example', data:{ddfe:{'didi-orange':'true','didi-green':'false'      }    } 
})    

  还可以在这里绑定一个返回对象的计算属性。这是一种常用且强大的模式。代码示例如下:

<div id='example' v-bind:class="ddfe"></div>
var vm = new Vue({el:'example',data:{didiAge:4,didiMember:6000     }computed:{ddfe:function(){return{'didi-orange':this.didiAge>3 ? true:false,'didi-large':this,didiMember>1000? true:false} } }
})        

  2.数组语法

  我们可以把一个数组传给v-bind:class,以应用一个class列表。代码示例如下:

<div id='example' v-bind:class="[didiHandsome,didiBeautiful]"></div>
var vm = new Vue({el:'example',data:{didiHandsome:'didi-handsome',didiBeautiful:'didi-beautiful'          }  
})

  渲染为:

<div id="example" class="didi-handsome didi-beautiful"></div>

  如何想根据条件切换列表中的class,则可以用三元表达式。代码示例如下:

<div id="example" v-bind:class="[didiHandsome,isRipe ? didiOrange: '']"></div>

  此例始终添加didiHandsome,但是只有在isRipe为true时才会添加didiOrange。

  不过,当有多个条件class时这样写有些烦琐。在Vue.js 1.0.19及以后版本中,可以在数组语法中使用对象语法。代码示例如下:

<div id="example" v-bind:class="[didiHandsome,{didiOrange: isRipe,didiGreen: isNotRipe}]"></div>

二、绑定内联样式

  1.对象语法

  v-bind:style的对象语法十分直观----看着非常像CSS,其实它是一个JavaScript对象。CSS属性名可以用驼峰式或短横分隔命名。代码示例如下:

<div id="example" v-bind:style="{color:didiColor,fontSize:fontSize + 'px'}"></div>
var vm = new Vue({el:'example',data:{didiColor:'orange',fontSize:30  }  
})

  通常直接绑定到一个样式对象更好,让模板更清晰。代码示例如下:

<div id="example" v-bind:style="ddfe"></div>
var vm = new Vue({el:'example', data:{ddfe:{color:orange,fontSize:'13px'}} 
})    

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

  2.数组语法

  v-bind:style的数组语法可以将多个样式对象应用到一个元素上。代码示例如下:

<div v-bind:style="[ddfe,didiFamily]"></div>

  3.自动添加前缀

  当v-bind:style使用需要厂商前缀的CSS属性时,如transform,Vue.js会自动侦测并添加相应的前缀。在Vue.js源码中采用prefix函数来完成这个功能。

 

转载于:https://www.cnblogs.com/yc-1314/p/10266776.html

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

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

相关文章

PHP安装之configure的配置参数

1、生成环境安装配置如下 要求安装如下库&#xff1a; imagickgdmysqlmysqlimysqlndphalconPharsoapsocketsxwebxsvczipzlib 具体查看 vim php-config 就可以知道是如何配置的 --prefix/home/php --with-config-file-path/home/php/etc --with-mysql --with-pdo-oci --with-ope…

Django05: 请求生命周期流程图/路由层

请求生命周期流程图 扩展知识&#xff1a; 缓存数据库 路由层 路由匹配 url(r^test/, views.test), 1. 第一个参数是正则匹配。 只要第一个匹配了&#xff0c;就不会执行下面。 输入url会默认加斜杠&#xff0c;django会重定向 a. 一次匹配不行 b. url再加斜杠匹配 可以…

facebook 分享页面_Facebook个人资料,页面和组之间有什么区别?

facebook 分享页面Facebook is used by a lot of different people for a lot of different things, so it’s only natural that Facebook would have different sets of features for each of them. There are three main ways you can use Facebook: with a regular Profile…

zabbix运行脚本监控ggsci报错

/u01/app/oracle/oracle/ogg/ggsci: error while loading shared libraries: libdb-6.1.so: cannot open shared object file: No such file or directory增加脚本环境变量设置PATH$PATH:$HOME/binexport ORACLE_BASE/u01/app/oracleexport ORACLE_HOME$ORACLE_BASE/11/db_1exp…

一句话设计原则

面向对象的可复用设计&#xff08; Object Oriented Design / OOD&#xff09; 1. 开闭原则 (Open Closed Principle) 对扩展开放&#xff0c;对修改关闭 2. 里氏代换原则(LSP) 1.可以使用基类的地方&#xff0c;其子类必然也能使用 2.并且原功能不会受到任何影响 -- 经典案例,…

postman--安装及Interceptor插件

1. 官网安装&#xff08;看网速-我下载的时候一直下载失败&#xff09;打开官网&#xff0c;https://www.getpostman.com选择ios或者win 2. 非官网安装 https://pan.baidu.com/s/1mstsimqO3ZC5m9z8czxVnA 密码&#xff1a;q6yp 安装postman 3.需要安装分享的蓝灯安装包&#xf…

亚马逊标题自动抓取_如何为您的家人提供自动Amazon礼品卡津贴

亚马逊标题自动抓取When your kids move away to go to school, they’ll probably phone home every once in a while to ask for money. If they shop a lot on Amazon (and they probably do), you can expedite that process by setting up an automatically recurring dep…

Django04-2: ORM关系表\字段补充

一、表与表关系 一对多 多对多 一对一 图书表 出版社 作者表 作者详情表 出版社 和 图书表 关系 一对多 外键字段在多的一方 book 图书表 和 作者表 关系 多对多 需要创建第三张表 作者表 和 作者详情表 关系 一对一 #创建表关系 先将基表创建 再添加外键字段 一对多…

我 与 TDesignBlazor 的故事

前言作者打拼了 .NET 十多年&#xff0c;属于全栈应用类型的工程师&#xff0c;特别是对于前端的技术情有独钟&#xff0c;从纯js到jquery&#xff0c;从bootstrap到自己写css&#xff0c;从web到winform&#xff0c;还写过一段时间的knockout.js&#xff0c;以至于公司里的前端…

实验数据

1.整段deng音频200多秒 2.加xx(1000:1480)之后 转载于:https://www.cnblogs.com/20179302yzl/p/10270632.html

25个好用的Shell脚本常用命令分享

1.列出所有目录使用量&#xff0c;并按大小排序。复制代码 代码如下:ls|xargs du -h|sort -rn #不递归下级目录使用du -sh2.查看文件排除以#开关和空白行&#xff0c;适合查看配置文件。复制代码 代码如下:egrep -v "^#|^$" filenamesed /#.*$/d; /^ *$/d3.删除空格…

mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

mysql中查询一个字段具体是属于哪一个数据库的那一张表&#xff1a;用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个库中的哪一张表 select table_schema,table_name from information_schema.columns where col…

macos剪切_如何使用macOS的内置“ Kill and Yank”作为替代剪切和粘贴

macos剪切Everyone knows about cutting and pasting by now. But did you know that your Mac sort of has a second clipboard known as kill and yank? 现在&#xff0c;每个人都知道剪切和粘贴。 但是您是否知道Mac上还有第二个剪贴板&#xff0c;称为“ kill and yank”&…

ExtJS 折线图趟过的坑

问题&#xff1a; 1、根据条件检索后绘制折线图&#xff0c;之前的坐标没有清除如图 解决方案&#xff1a; 在绘制之前&#xff0c;清空坐票&#xff1a; leftLine.surface.removeAll(); leftLine.redraw(false); 完整代码如下 storeBar.load({params: { SDate: bTime, EDate: …

EventBus的实现

EventBus概要 EventBus是消息传递的一种方式&#xff0c;基于一个消息中心&#xff0c;订阅和发布消息的模式。这种方式的实现不仅仅局限于前端&#xff0c;在iOS中的消息消息中心也是如此实现。 设计模式&#xff1a;订阅者发布者模式&#xff0c;这种设计模式在前端很常见。A…

Django05-1: 有名分组、无名分组与反向解析

有名、无名分组 分组正则表达式&#xff0c;加小括号 url(r^test/(\d), views.test),def test(request,xx):print(xx)return HttpResponse("OK") 无名分组 将括号正则表达式匹配的内容&#xff0c;当作位置参数传递到后面的视图函数 有名分组 正则表达式起一个别…

Django的第一步(第一节)

写下你的第一个Django应用第一部分让我们通过例子来学习.在本教程中&#xff0c;我们将引导您完成基本投票应用程序的创建.其中包括两部分:一个让人们查看民意调查并投票的公共网站.允许您添加&#xff0c;更改和删除民意调查的管理网站.我们假设你django已经安装好了,你可以通…

ad中电源插座怎么封装_您可以在房屋中安装的各种电源插座

ad中电源插座怎么封装You may already know about smart outlets, or outlets with integrated USB ports. But you might be surprised at how many “normal” outlets you can actually buy for your house. They’re all built for different situations, and you want to …

Arithmetic Slices

这两天一直复习动态规划&#xff0c;就想到leetcode上刷刷题&#xff0c;easy难度的很少&#xff0c;大部分都是medium和hard。本题是第一道DP类型medium难度的题目&#xff0c;但是用其他的方法比如暴力法也可以求解。首先来看题目描述&#xff1a; A sequence of number is c…

在Data Lake Analytics中使用视图

在Data Lake Analytics中使用视图 1. 概述 在Data Lake Analytics&#xff08;以下简称DLA&#xff09;中使用视图&#xff08;VIEW&#xff09;功能&#xff0c;可以大大简化对于重复SQL&#xff0c;特别是较为复杂的SQL语句的编写和维护。目前DLA中还不支持SQL视图的物化。在…