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 相关文章推荐
XMLHTTPRequest的属性和方法简介
Nov 23 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
js编写当天简单日历效果【实现代码】
May 03 Javascript
简单理解Vue条件渲染
Dec 03 Javascript
概述一个页面从输入URL到页面加载完的过程
Dec 16 Javascript
jQuery设计思想
Mar 07 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
May 08 Javascript
Vue实现表格批量审核功能实例代码
May 28 Javascript
JavaScript中var的重要性实例分析
Jul 09 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 jQuery
vue中div禁止点击事件的实现
Apr 02 Vue.js
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使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
10条php编程小技巧
2015/07/07 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
详解Python3的TFTP文件传输
2018/06/26 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
基于Python的OCR实现示例
2020/04/03 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Python中的Cookie模块如何使用
2020/06/04 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
九年级科学教学反思
2014/01/29 职场文书
本科应届生求职信
2014/08/05 职场文书
2014公司年终工作总结
2014/12/19 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js