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 相关文章推荐
Javascript 各浏览器的 Javascript 效率对比
Jan 23 Javascript
js获取时间(本周、本季度、本月..)
Nov 22 Javascript
easyui datagrid 键盘上下控制选中行示例
Mar 31 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
Aug 25 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
Sep 26 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
Mar 23 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 Javascript
vue如何使用外部特殊字体的操作
Jul 30 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
Aug 20 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注释和去除空格函数分享
2014/03/13 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
php数组分页实现方法
2016/04/30 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
Python中的yield浅析
2014/06/16 Python
python根据路径导入模块的方法
2014/09/30 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
django最快程序开发流程详解
2019/07/19 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
django在开发中取消外键约束的实现
2020/05/20 Python
新闻学专业应届生求职信
2013/11/08 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
个人党性剖析材料
2014/02/03 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
网络信息安全承诺书
2014/03/26 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
公务员个人考察材料
2014/12/23 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
Python几种酷炫的进度条的方式
2022/04/11 Python
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android