vue.js学习笔记之绑定style样式和class列表


Posted in Javascript onOctober 31, 2016

数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。因为它们都是 attribute,我们可以用 v-bind 处理它们:只需要计算出表达式最终的字符串。不过,字符串拼接麻烦又易错。因此,在 v-bind 用于 class 和 style 时,Vue.js 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。

一.绑定Class属性。

绑定数据用v-bind:命令,简写成:

语法:<div v-bind:class="{ active: isActive }"></div>。class后面的双引号里接受一个对象字面量/对象引用/数组作为参数,

这里,{active: isActive}是对象参数,active是class名,isActive是一个布尔值。下面是一个例子:

绑定对象字面量

html:

<div id="classBind">
<span :class="{warning:isWarning,safe:isSafe}" v-on:click="toggle">
状态:{{alert}}{{isSafe}}
</span>
</div>
//js
var app11=new Vue({
el:'#classBind',
data:{
isWarning:true,
alertList:['红色警报','警报解除'],
alert:''
},
computed:{
isSafe:function(){
return !this.isWarning;
}
},
methods:{
toggle:function(){
this.isWarning=!this.isWarning;
this.alert= this.isWarning?this.alertList[0]:this.alertList[1];
}
}
});

css:

.warning{
color:#f24;
}
.safe{
color:#42b983;
}

当点击状态文字时,可以切换后面的文字和颜色

//状态:警报解除true

//状态:红色警报false

绑定对象引用

这里绑定的对象可以写到Vue实例的data里面,而在class="classObj ",双引号中的class是对Vue实例中classObj对象的引用。classObj可以放在data中或者computed中,如果在computed中,则classObj所对应的函数必须返回一个对象如下:

js:

var app11=new Vue({
el:'#classBind',
data:{
isWarning:true,
alertList:['红色警报','警报解除'],
alert:''
},
computed: {
isSafe: function () {
return !this.isWarning;
},
classObj:function(){
return {
warning: this.isWarning,
safe:this.isSafe
}
}
},
methods:{
toggle:function(){
this.isWarning=!this.isWarning;
this.alert= this.isWarning?this.alertList[0]:this.alertList[1];
}
}
});

绑定数组

html:

<div v-bind:class="classArray" @click="removeClass()">去掉class</div>

js

data: {
classArray:["big",'red']
}
methods:{
removeClass:function(){
this.classArray.pop();
}
}

css:

.big{
font-size:2rem;
}
.red{
color:red; 
}

效果,点击去掉class,会调用removeClass函数,去掉classArray数组的最后一项,第一次,去掉'red',字体颜色由红变黑,再点,去掉'big',字体变小。

二、绑定内联style

此时此刻,我一边看着本页旁边的那个Vue api文档学,一边到这里卖,装逼的感觉真爽o(^?^)o

html

<div id="styleBind">
<span :style="{color:theColor,fontSize:theSize+'px'}" @click="bigger">styleBind</span>
</div>

css

这个不需要css。。。

js

var app12=new Vue({
el:'#styleBind',
data:{
theColor:'red',
theSize:14
},
methods:{
bigger:function(){
this.theSize+=2;
}
}
});

除了传入对象字面量以外,也可以传入对象引用和数组给V-bind:style

以上所述是小编给大家介绍的vue.js学习笔记之绑定style和class,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Ctrl+Enter提交内容信息
Jun 26 Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
May 08 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
JsRender实用入门教程
Oct 31 Javascript
AngularJS 最常用的功能汇总
Feb 17 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
Vue生命周期activated之返回上一页不重新请求数据操作
Jul 26 Javascript
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
深入理解JavaScript中的块级作用域、私有变量与模块模式
Oct 31 #Javascript
jQuery grep()方法详解及实例代码
Oct 30 #Javascript
webix+springmvc session超时跳转登录页面
Oct 30 #Javascript
js获取时间函数及扩展函数的方法
Oct 30 #Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
Oct 30 #Javascript
浅谈JS函数定义方式的区别
Oct 30 #Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 #Javascript
You might like
php下目前为目最全的CURL中文说明
2010/08/01 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
python Canny边缘检测算法的实现
2020/04/24 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
项目经理岗位职责范本
2015/04/01 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
导游词之日本富士山
2020/01/06 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript