• 对象语法
  • 数组语法

一、对象语法

1.1对象语法绑定HTML Class

语法:v-bind:class="{'className1':boolean1,'className2':boolean2}"

 <style>
div{
width: 100px;
height: 100px;
}
.class1{
background-color: #ff0;
}
.class2{
background-color:#f00;
}
</style>

示例参考样式

 <div id="example" v-bind:class="{'class1':yellow,'class2':red}" v-on:click="changeColor"></div>
<script>
var vm = new Vue({
el:"#example",
data:{
yellow:true,
red:false
},
methods:{
changeColor(){
this.yellow = !this.yellow;
this.red = !this.red;
}
}
});
</script>

当点击div时,触发changeColor方法,数据的值发生变化时,class行间属性会被切换,下面时触发效果:

当你看到v-bind:class="{'class1':yellow,'class2':red}"这句代码是不是就想到了直接使用一个对象替代这个键值对的写法,这当然是可以的:

 <div id="example" v-bind:class="colorName" v-on:click="changeColor"></div>
<script>
var vm = new Vue({
el:"#example",
data:{
colorName:{
class1:true,
class2:false
}
},
methods:{
changeColor(){
this.colorName.class1 = !this.colorName.class1;
this.colorName.class2 = !this.colorName.class2;
}
}
});
</script>

这两种写法前一种是空间复杂度大一点,后一种是时间复杂度大一点,怎么应用看具体需求吧。

1.2对象语法绑定HTML Style

语法:v-bind:style="{styleProp1:value1,styleProp2:value2}"

将样式属性名和属性值以键值对的形式写入对象,属性名采用驼峰书写模式。

 <div id="example" v-bind:style="{width:widthVal,height:heightVal,backgroundColor:backColorVal}" v-on:click="changeColor"></div>
<script>
var vm = new Vue({
el:"#example",
data:{
widthVal:'100px',
heightVal:'100px',
backColorVal:'#ff0'
},
methods:{
changeColor(){
this.backColorVal = this.backColorVal == '#ff0' ? '#f00' : '#ff0';
}
}
});
</script>

实现的效果与HTML Class对象语法实现的一样,HTML Style对象语法表达式转换成类名的方式就不展示了。

二、数组语法

2.1数组语法绑定HTML Class

语法:v-bind:class="[classNameKey1,classNameKey2]"

(样式参考示例1.1的样式)

 <div id="example" v-bind:class="[class1,class2]" v-on:click="changeColor"></div>
<script>
var vm = new Vue({
el:"#example",
data:{
class1:'class1',
class2:''
},
methods:{
changeColor(){
this.class1 = this.class1 == '' ? 'class1' : '';
this.class2 = this.class2 == '' ? 'class2' : '';
}
}
});
</script>

2.2数组语法实现HTML Style绑定

语法:v-bind:style="[styleObje1,styleObje2]"

 <div id="example" v-bind:style="[didiFamily, styleColo]" v-on:click="changeColor" ref="example"></div>
<script>
var vm = new Vue({
el:"#example",
data:{
didiFamily:{
width:'100px',
height:'100px'
},
styleColo:{
backgroundColor:'#ff0'
}
},
methods:{
changeColor(){
return this.styleColo.backgroundColor = this.styleColo.backgroundColor == '#ff0' ? '#f00' : '#ff0';
}
}
});
</script>

vue入门:(class与style绑定)的更多相关文章

  1. Vue入门---属性、style和class绑定方法

    一 .用对象的方法绑定class <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  2. Vue中class与style绑定

    gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson07 一 用对象的方法绑定class 很简单,举个栗子: <!D ...

  3. vue基础——Class与Style绑定

    Class与Style绑定 操作元素的class列表和内联样式是数据绑定的一个常见的需求. 因为它们都是属性,所以我们可以用v-bind来处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼 ...

  4. vue 的 Class 与 Style 绑定

    操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将 ...

  5. 前端框架之Vue(4)-Class与Style绑定

    操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将  ...

  6. vue基础---Class 与 Style 绑定

    [一]绑定HTML Class (1)对象语法 ①普通绑定class <div id="area" v-bind:class="className"> ...

  7. vue中,class与style绑定

    <template> <div> <p v-bind:class="{active:isActive,'demo':Demo}">嘿嘿</ ...

  8. Vue入门(二)之数据绑定

    Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一)  http://www.cnblogs.com/gdsblog/p/78 ...

  9. Vue 入门之数据绑定

    什么是双向绑定? Vue 框架很核心的功能就是双向的数据绑定. 双向是指:HTML 标签数据 绑定到 Vue 对象,另外反方向数据也是绑定的.通俗点说就是,Vue 对象的改变会直接影响到 HTML 的 ...

  10. vue从入门到进阶:Class 与 Style 绑定(四)

    绑定 HTML Class 对象语法 ①.添加单个class: <div v-bind:class="{ active: isActive }"></div> ...

随机推荐

  1. vscode通过服务器打开html文件

    之前讲到,安装open in brower插件之后可以直接右键选择使用浏览器渲染html文件,但是,这种打开方式是“本地打开方式” 那么我们怎么以服务的方式运行html呢: 1.下载插件:Live S ...

  2. [转]Nginx配置信息详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  3. Fragment 和Activity的数据传递实例代码

    package com.example.fragment; import android.os.Bundle; import android.support.v4.app.FragmentActivi ...

  4. 给php安装openssl扩展

    转自 http://blog.csdn.net/sinat_23678421/article/details/42217971

  5. Centos7 搭建Svn+Apache服务器

    Svn客户端搭建 1.yum install subversion 2.查看安装版本 svnserve --version 3.创建SVN版本库目录 mkdir -p /opt/svn 4.创建版本库 ...

  6. Centos7端口映射

    开启tomcat后,访问需要加端口号8080才能访问,在不改变tomcat默认端口号的情况下,添加nat的端口映射,将80端口映射到8080端口,即可实现不加8080访问. 向nat表的 PREROU ...

  7. android#ListView的简单用法

    新建项目,并修改项目生产的主文件activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/ap ...

  8. cisco上配置 pppoe拨号

    r1(config)#vpdnenable                      开启虚拟拨号VPDN r1(config)#vpdn-groupoffice                定义组 ...

  9. mysql注入语句

    一.sql注入语句 爆破所有数据库: (select group_concat(schema_name) from information_schema.schemata) 获取数据库所有表: (se ...

  10. 【VS开发】【Live555-rtsp】RTSP服务器实例live555源代码分析

    原文地址:RTSP服务器实例live555源代码分析作者:mozheer 1. RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClient ...