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 相关文章推荐
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
AngularJS中如何使用echart插件示例详解
Oct 26 Javascript
详解前端自动化工具gulp自动添加版本号
Dec 20 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
vue获取DOM元素并设置属性的两种实现方法
Sep 30 Javascript
Vue中的字符串模板的使用
May 17 Javascript
js实现按钮开关单机下拉菜单效果
Nov 22 Javascript
Javascript删除数组里的某个元素
Feb 28 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
vue @click.native 绑定原生点击事件
Apr 22 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 setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
javascript的内存管理详解
2013/08/07 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
python机器学习之神经网络实现
2018/10/13 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
python从子线程中获得返回值的方法
2019/01/30 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
python如何制作英文字典
2019/06/25 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
python模拟斗地主发牌
2020/04/22 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
社团招新策划书
2014/02/04 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
股东协议书范本
2014/04/14 职场文书
安全生产专项整治方案
2014/05/06 职场文书
环境整治工作方案
2014/05/18 职场文书
2014年民政工作总结
2014/11/26 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis