1、Vue 中 class 和 style 的绑定

在 Vue 中,可以通过数据绑定来操作元素的 class 列表和内联样式,操作 class 和 style 是用 v-bind 来绑定的。在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强,表达式结果的类型除了字符串之外,还可以是对象或数组。

v-bind: class 指令可以与普通的 class 属性共存,并不会冲突或者覆盖。

当在一个自定义组件上使用 class 属性时,这些 class 将被添加到该组件的根元素上面,这个元素上已经存在的 class 不会被覆盖。

1.1、绑定 class

1.1.1、字符串语法

字符串语法也就是直接在 v-bind:class 后面直接写表达式。

<div v-bind:class="'red_class'">
div3
</div> .red_class {
background: red;
}

1.1.2、对象语法

对象语法就是在 v-bind:class 的表达式语法里写入一个对象。该对象的属性名是类名,属性值的 true 或者 false 决定该属性名是否添加进类名中。

<div v-bind:class="{ red_class : false" >
div1
</div>
<div v-bind:class="{ 'red_class' : classBol, 'green_class': true > <!--属性名可以写成字符串-->
div2
</div>
<div v-bind:class="classObj"> <!--也可以直接写对象变量-->
div3
</div> data: {
classBol: true,
classObj: {
red_class: true
}
}

判断该对象的属性值是 true 或者 false 的依据跟 JS 一般情况下判断数据的布尔值一样,比如:0为false,1为true,null 为false。

1.1.3、数组语法

可以把一个数组传给 v-bind:class,以应用一个 class 列表。数组语法和对象语法不同,在数组语法中,数组项是变量名,类名取决于该变量名的值,值是什么,类名就是什么。

<div v-bind:class="[redClass, greenClass]"></div>

data: {
redClass: 'red_class',
greenClass: 'green_class'
} <!-- 最终渲染 -->
<div class="red_class green_class"></div>

在数组中也可以使用三元表达式,并且数组项也可以是对象

<div v-bind:class="[true? redClass : '', greenClass]"></div> <!-- 三元表达式,不过数组项仍是变量 -->

<div v-bind:class="[{ red_class: false }, greenClass]"></div> <!-- 数组项中使用对象 -->

data: {
redClass: 'red_class',
greenClass: 'green_class'
}

1.2、绑定 style

当 v-bind:style 使用需要添加浏览器引擎前缀的 CSS 属性时,如 transform,Vue会自动侦测并添加相应的前缀。

1.2.1、对象语法

<div v-bind:style="{ color: colorVal, fontSize: sizeVal + 'px' }"></div>

<div v-bind:style="styleObject"></div>  <!--直接绑定一个对象变量-->

data: {
colorVal: 'red',
sizeVal: 30,
styleObject: {
color: 'red',
fontSize: '13px'
}
}

1.2.2、数组语法

绑定 style 的数组语法的数组项是对象,其实就是可以将多个样式对象绑定到元素上。

<div v-bind:style="[baseObj, otherObj]"></div>

data: {
baseObj: {
color: 'red'
},
otherObj: {
fontSize: '13px'
}
}

Vue的使用总结(2)的更多相关文章

  1. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. Vue + Webpack + Vue-loader 系列教程(2)相关配置篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...

  6. Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...

  7. 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库

    应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...

  8. Vue.js 2.0 和 React、Augular等其他框架的全方位对比

    引言 这个页面无疑是最难编写的,但也是非常重要的.或许你遇到了一些问题并且先前用其他的框架解决了.来这里的目的是看看Vue是否有更好的解决方案.那么你就来对了. 客观来说,作为核心团队成员,显然我们会 ...

  9. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  10. 初探Vue

    Vue.js(读音/vju:/,类似于view),是近来比较火的前端框架,但一直没有怎么具体了解.实现过,就知道个啥的MVVM啦,数据驱动啦,等这些关于Vue的虚概念. 由于最近,小生在公司中,负责开 ...

随机推荐

  1. Gitlab仓库搭建和免密使用gitlab

    Gitlab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的 ...

  2. 本站页脚HTML回顶部代码

    <style type="text/css">.top { width: 50px; height: 50px; background-color: #F0F0F0; ...

  3. JS中$含义及用法

    $在JS中本身只是一个符号而异,在JS里什么也不是.但在JS应用库JQUERY的作者将之做为一个自定义函数名了,这个函数是获取指定网页元素的函数,使用非常之频繁,所以好多新手不知道,还以为$是JS的什 ...

  4. Vagrant 手册之 box - box 的文件格式

    原文地址 过去,box 只是 VirtualBox 导出的 tar 文件.由于 Vagrant 现在支持多个 provider 和版本控制,box 文件稍微复杂一些. 用于 Vagrant 1.0.x ...

  5. Vagrant 入门 - 清理(teardown)

    原文地址 我们现在有一个功能齐全的虚拟机,可以用于基本 Web 开发.但如果现在需要更换设备,或者在另一个项目上工作,如何清理我们的开发环境? 借助 Vagrant,可以暂停(suspend),停止( ...

  6. HTML--JS 二级联动

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. Vue混入:基础

    混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能. 一 App组件 <template> <div id="app"> & ...

  8. 剑指offer第二版面试题5:从尾到头打印链表(JAVA版)

    题目描述: 输入一个链表,从尾到头打印链表每个节点的值.返回新链表. import java.util.Stack; //定义链表结构 class ListNode { int value; List ...

  9. Yaconf – 一个高性能的配置管理扩展

    鸟哥出品:http://www.laruence.com/2015/06/12/3051.html 首先说说, 这个是干啥的. 我见过很多的项目中, 用PHP文件做配置的, 一个config目录下可能 ...

  10. vue-router 路由元信息 终于搞明白了路由元信息是个啥了

    vue-router 路由元信息:https://blog.csdn.net/wenyun_kang/article/details/70987840 终于搞明白了路由元信息是个啥了:https:// ...