Vue的使用总结(2)
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)的更多相关文章
- Vue.js 和 MVVM 小细节
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- Vue + Webpack + Vue-loader 系列教程(2)相关配置篇
原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...
- Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇
原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...
- 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库
应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...
- Vue.js 2.0 和 React、Augular等其他框架的全方位对比
引言 这个页面无疑是最难编写的,但也是非常重要的.或许你遇到了一些问题并且先前用其他的框架解决了.来这里的目的是看看Vue是否有更好的解决方案.那么你就来对了. 客观来说,作为核心团队成员,显然我们会 ...
- 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?
引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...
- 初探Vue
Vue.js(读音/vju:/,类似于view),是近来比较火的前端框架,但一直没有怎么具体了解.实现过,就知道个啥的MVVM啦,数据驱动啦,等这些关于Vue的虚概念. 由于最近,小生在公司中,负责开 ...
随机推荐
- UltraISO 9.6.1.3016(带注册机)
UltraISO 9.6.1.3016 链接: http://pan.baidu.com/s/1kTqO6hD密码: ehdc
- 软件-JMeter:JMeter 百科
ylbtech-软件-JMeter:JMeter 百科 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到 ...
- tomcat 迁移到weblogic 问题
问题1: Caused by: java.lang.UnsupportedClassVersionError: com/audaque/datadiscovery/soap/service/impl/ ...
- 舔狗【2019河北省大学生程序设计竞赛 J题】
题目描述 > “舔狗舔狗,> 舔到最后,> 一无所有.” 有 n 只舔狗,每只舔狗的心中都有自己朝思暮想的一位. 每个人虽然受到了一万次拒绝,还毅然第一万零一次鼓起勇气. 作为一个不 ...
- C#联接序列
1. Concat() – 串联序列(有重复项) var healthFoods = new List<string> { "fruits", "veget ...
- 组件化框架设计之AOP&IOC(四)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将从以下两个方面来介绍组件化框架设计: [AOP(面向切 ...
- Python入门之基础day1
一.引子 1. 什么是编程语言? 编程语言就是人与计算机沟通的介质 2.什么是编程? 编程就是人把自己想命令计算机干的事情通过编程语言翻译出来并写到文件里去 为什么要编程? 编程的目的就是为了让计算机 ...
- python print (x,end = '') 意思作用
for x in range(10) python print(x)换行输出 for x in range(10) python print (x,end = '') 不换行输出
- D Dandan's lunch
链接:https://ac.nowcoder.com/acm/contest/338/D来源:牛客网 题目描述 As everyone knows, there are now n people pa ...
- 【知识强化】第四章 指令系统 4.3 CISC和RISC的基本概念
那么我们进入本章的最后一节,CISC和RISC. 我们先来回顾一下,我们这一章的一个概览.我们之前已经把指令格式和指令的寻址方式都讲完了,这两部分呢是本章的一个重点.而本章的这一部分,CISC和RIS ...