vue.js入门教程之绑定class和style样式


Posted in Javascript onSeptember 02, 2016

一、前言

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

二、绑定 HTML Class

请注意:尽管可以用 Mustache 标签绑定 class,比如 class="{{ className }}" ,但是我们不推荐这种写法和 v-bind:class 混用。两者只能选其一!

对象语法

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

<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }"></div>
data: {
 isA: true,
 isB: false
}

渲染为:

<div class="static class-a"></div>

当 isA 和 isB 变化时,class 列表将相应地更新。例如,如果 isB 变为 true,class 列表将变为 "static class-a class-b"。

你也可以直接绑定数据里的一个对象:

<div v-bind:class="classObject"></div>
data: {
 classObject: {
 'class-a': true,
 'class-b': false
 }
}

我们也可以在这里绑定一个返回对象的计算属性。这是一个常用且强大的模式。

数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

<div v-bind:class="[classA, classB]">
data: {
 classA: 'class-a',
 classB: 'class-b'
}

渲染为:

<div class="class-a class-b"></div>

如果你也想根据条件切换列表中的 class,可以用三元表达式:

<div v-bind:class="[classA, isB ? classB : '']">

此例始终添加 classA,但是只有在 isB 是 true 时添加 classB 。

二、绑定内联样式

对象语法

v-bind:style 的对象语法十分直观——看着非常像 CSS,其实它是一个 JavaScript 对象。CSS 属性名可以用驼峰式(camelCase)或短横分隔命名(kebab-case):

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
 activeColor: 'red',
 fontSize: 30
}

直接绑定到一个样式对象通常更好,让模板更清晰:

<div v-bind:style="styleObject"></div>
data: {
 styleObject: {
 color: 'red',
 fontSize: '13px'
 }
}

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

三、数组语法

v-bind:style 的数组语法可以将多个样式对象应用到一个元素上:

<div v-bind:style="[styleObjectA, styleObjectB]">

自动添加前缀

v-bind:style 使用需要厂商前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀。

四、总结

以上就是为大家整理的vue.js绑定class和style样式的全部内容,文章介绍的很详细,具有一定的参考学习价值,希望对大家学习vue.js能有所帮助,小编还会陆续更新关于vue.js的信息,感兴趣的朋友们请继续关注三水点靠木。

Javascript 相关文章推荐
Backbone.js的一些使用技巧
Jul 01 Javascript
JavaScript检测并限制复选框选中个数的方法
Aug 12 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
jQuery代码实现表格中点击相应行变色功能
May 09 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
React路由管理之React Router总结
May 10 Javascript
微信小程序实现星级评分和展示
Jul 05 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
Aug 31 Javascript
移动端图片上传旋转、压缩问题的方法
Oct 16 Javascript
详解Vue项目部署遇到的问题及解决方案
Jan 11 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
js绘制购物车抛物线动画
Nov 18 #Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
Sep 02 #Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 #Javascript
node.js中module.exports与exports用法上的区别
Sep 02 #Javascript
AngularJs Scope详解及示例代码
Sep 01 #Javascript
AngularJs Modules详解及示例代码
Sep 01 #Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 #Javascript
You might like
谈谈PHP语法(4)
2006/10/09 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
php头像上传预览实例代码
2017/05/02 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
玩转vue的slot内容分发
2018/09/22 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python通过floor函数舍弃小数位的方法
2015/03/17 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
python求解汉诺塔游戏
2020/07/09 Python
python中Django文件上传方法详解
2020/08/05 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
C语言笔试题回忆
2015/04/02 面试题
北京SQL新华信咨询
2016/09/30 面试题
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
电脑专业个人求职信范文
2014/02/04 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
遗嘱范文
2015/08/07 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
python自动化测试之Selenium详解
2022/03/13 Python
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android