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 相关文章推荐
网上抓的一个特效
May 11 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
Oct 23 Javascript
利用Node.js编写跨平台的spawn语句详解
Feb 12 Javascript
JavaScript中创建对象的7种模式详解
Feb 21 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
Vue2.2.0+新特性整理及注意事项
Aug 22 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 Javascript
vue-cropper插件实现图片截取上传组件封装
May 27 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
prototype 学习笔记整理
2009/07/17 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
vue中 v-for循环的用法详解
2020/02/19 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
Python Django搭建网站流程图解
2020/06/13 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
异步传递消息系统的作用
2016/05/01 面试题
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
打造完美自荐信
2014/01/24 职场文书
小学生获奖感言范文
2014/02/02 职场文书
交通事故协议书范文
2014/04/16 职场文书
工作表扬信范文
2015/01/17 职场文书
汽车转让协议书
2015/01/29 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript