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 相关文章推荐
javascript中删除指定数组中指定的元素的代码
Feb 12 Javascript
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
jquery插件开发注意事项小结
Jun 04 Javascript
不要使用jQuery触发原生事件的方法
Mar 03 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
设置jquery UI 控件的大小方法
Dec 12 Javascript
简单实现jQuery弹幕效果
May 06 jQuery
使用InstantClick.js让页面提前加载200ms
Sep 12 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
node.js命令行教程图文详解
May 27 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 Javascript
深入理解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数组一对一替换实现代码
2012/08/31 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
Python实现远程调用MetaSploit的方法
2014/08/22 Python
python多进程操作实例
2014/11/21 Python
Django视图和URL配置详解
2018/01/31 Python
python自动化之Ansible的安装教程
2019/06/13 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
创伤外科专业推荐信范文
2013/11/19 职场文书
中秋节主持词
2014/04/02 职场文书
优秀教师个人材料
2014/12/15 职场文书
法院答辩状格式
2015/05/22 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Redis可视化客户端小结
2021/06/10 Redis
基于Redission的分布式锁实战
2022/08/14 Redis