Vue.js中用v-bind绑定class的注意事项


Posted in Javascript onDecember 13, 2016

前言

在Vue.js版本:1.0.27,使用Vue.js中V-bind指令来绑定class和style时,Vue.js对其进行了增强。表达式结果出了字符串之外,还可以是对象或者数组。

这里自己对其进行了测试,发现有一下的问题:

如果使用对象语法对class进行绑定话,class名称必须加上引号,代表所对应的样式,否则会将其当做对象的属性,从而使得初始化报错。

<!DOCTYPE html> 
<html lang="en"> 
 
<head> 
 <meta charset="UTF-8"> 
 <title>Document</title> 
 <script src="http://cdn.bootcss.com/vue/1.0.27/vue.js"></script> 
 <style> 
 .static { 
 font-size: 120px; 
 width: 600px; 
 margin: 0 auto; 
 background-color: yellow; 
 height: 120px; 
 line-height: 120px; 
 text-align: center; 
 } 
 
 .class-a { 
 color: #FF0000; 
 } 
 
 .class-b { 
 text-decoration: underline; 
 } 
 </style> 
</head> 
 
<body> 
 <div id="app"> 
 <div v-bind:class="classObject"> 
 关于class的绑定 
 </div> 
 </div> 
 <script> 
 var vm = new Vue({ 
 el: '#app', 
 data: { 
 classObject: { 
 //'class-a',不能写成class-a(不带引号);这里的classObject是js对象,而class-b是代表的是一个样式,所以必须写成'class-a',用引号括起来。 
 //否则这里的class-a只能代表classObject的一个属性名称而已,这样vuejs在初始化时,会报错。 
 'class-a':false, 
 'class-b': true 
 } 
 } 
 }); 
 </script> 
</body> 
 
</html>

参考资料:

Vue.js官网----http://cn.vuejs.org/guide/class-and-style.html

补充:

在这里,自己感觉代码中的classObject有点像散列表,key是一个样式class,而value是boolean类型的值。

从console中获取和改变classObject对象中class-a值,见下图:

Vue.js中用v-bind绑定class的注意事项

看到console中操作,让我觉得对于classObject确实有点像散列表类型。为了证实这个,可以去看看源码(ps:自己没看)。

在Vue.js1.0.19,作者为其添加了一些语法,在数组也可以使用对象语法:

<div v-bind:class="[classA, { 'classB': isB, 'classC': isC }]">class绑定</div>

<div v-bind:class="[classA, { classB: isB, classC: isC }]">class绑定</div>

上面,对于classA可以加引号和不加引号,下面是自己的测试代码。

<!DOCTYPE html> 
<html lang="en"> 
 
<head> 
 <meta charset="UTF-8"> 
 <title>Document</title> 
 <script src="http://cdn.bootcss.com/vue/1.0.27/vue.js"></script> 
 <style> 
 .static { 
 font-size: 120px; 
 width: 600px; 
 margin: 0 auto; 
 background-color: yellow; 
 height: 120px; 
 line-height: 120px; 
 text-align: center; 
 } 
 
 .class-a { 
 color: #FF0000; 
 } 
 
 .classB { 
 text-decoration: underline; 
 } 
 
 .classC{ 
 text-shadow: 2px 2px 4px #000000; 
 } 
 </style> 
</head> 
 
<body> 
 <div id="app"> 
 <!-- 两种绑定:加引号和不加引号,都可以 --> 
 <div v-bind:class="[classA, { 'classB': isB, 'classC': isC }]">class绑定</div> 
 <div v-bind:class="[classA, { classB: isB, classC: isC }]">class绑定</div> 
 </div> 
 <script> 
 var vm = new Vue({ 
 el: '#app', 
 data: { 
 classA: 'class-a', 
 isB: true, 
 isC: true 
 } 
 
 }); 
 </script> 
</body> 
 
</html>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
javascript 写类方式之一
Jul 05 Javascript
JS验证邮箱格式是否正确的代码
Dec 05 Javascript
jQuery晃动层特效实现方法
Mar 09 Javascript
浅谈javascript的分号的使用
May 12 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
Aug 25 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
JS封装通过className获取元素的函数示例
Dec 20 Javascript
jQuery中页面返回顶部的方法总结
Dec 30 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
生产制造追溯系统之再说条码打印
Jun 03 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 #Javascript
JS中事件冒泡和事件捕获介绍
Dec 13 #Javascript
AngularJS入门教程之路由机制ngRoute实例分析
Dec 13 #Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 #Javascript
浅析Jquery操作select
Dec 13 #Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 #Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 #Javascript
You might like
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
Python的Tornado框架异步编程入门实例
2015/04/24 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
详解python中的模块及包导入
2019/08/30 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python访问hdfs的操作
2020/06/06 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
JAVA和C++区别都有哪些
2015/03/30 面试题
会计电算化专业应届大学生求职信
2013/10/22 职场文书
高效课堂标语
2014/06/26 职场文书
1000字打架检讨书
2014/11/03 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
Android自定义双向滑动控件
2022/04/19 Java/Android
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
SQL Server中锁的用法
2022/05/20 SQL Server