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 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
JavaScript 面向对象编程(1) 基础
May 18 Javascript
Javascript中的变量使用说明
May 18 Javascript
js实现身份证号码验证的简单实例
Feb 19 Javascript
jQuery Chart图表制作组件Highcharts用法详解
Jun 01 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
详解vue-cli3使用
Aug 14 Javascript
VUE 解决mode为history页面为空白的问题
Nov 01 Javascript
vue使用一些外部插件及样式的配置代码
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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
如何通过python画loss曲线的方法
2019/06/26 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
担保书格式及范文
2014/04/01 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
上诉状格式
2015/05/23 职场文书