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中RegExp保留小数点后几位数的方法分享
Aug 13 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
jquery队列函数用法实例
Dec 16 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
js闭包所用的场合以及优缺点分析
Jun 22 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
两行代码轻松搞定JavaScript日期验证
Aug 03 Javascript
JS判断是否手机或pad访问实现方法
Dec 09 Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 Javascript
详解如何在Angular中快速定位DOM元素
May 17 Javascript
vue.js移动数组位置,同时更新视图的方法
Mar 08 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
img标签中onerror用法
2009/08/13 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
Python退火算法在高次方程的应用
2018/07/26 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python tornado使用流生成图片的例子
2019/11/18 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
商务邀请函范文
2014/01/14 职场文书
丑小鸭教学反思
2014/02/03 职场文书
满月酒主持词
2014/03/27 职场文书
建设投标担保书
2014/05/13 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python