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获取地址栏参数
Dec 22 Javascript
JavaScript 实现类的多种方法实例
May 01 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
jquery实现自定义图片裁剪功能【推荐】
Mar 08 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
Jul 26 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
小程序和web画三角形实现解析
Sep 02 Javascript
微信小程序自定义底部弹出框动画
Nov 18 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实现CSV文件导入和导出
2015/10/24 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
RequireJs的使用详解
2017/02/19 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python Zmail模块简介与使用示例
2020/12/19 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
Ajax的优点和缺点
2014/11/21 面试题
小学学校评估方案
2014/06/08 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
刑事法律意见书
2015/06/04 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python