vue 中动态绑定class 和 style的方法代码详解


Posted in Javascript onJune 01, 2018

先列举一些例子

class="['content',{'radioModel':checkType}]"  
class="['siteAppListDirNode',{open:appitem.open==true}]" 
class="['portalCenterMenu',{showNav:!showHideNav,hideNav:showHideNav}]" 
class="{shortcutMenuShow:!showHideNav,shortcutMenuHide:showHideNav}" 
style="{height:checkType?'423px':'385px'}" 
src="userInfo.userFace?userInfo.userFace:defaultHead"

再来看详细解释

Vue.js 的核心是一个响应的数据绑定系统,它允许我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。被绑定的DOM 将与数据保持同步,每当数据有改动,相应的DOM视图也会更新。基于这种特性,通过vue.js动态绑定class就变得非常简单。

1. 数据绑定

vue 指令以 v- 前缀标示,数据绑定的指令 v-bind:属性名, 简写为 :属性名, 简单的数据绑定例子如下:

<a v-bind:href="https://3water.com/">三水点靠木首页</a>

简写:

<a :href="https://3water.com/">三水点靠木首页</a>

2. 动态绑定class

vue 的分隔符默认是 {{ }}, 在分隔符里面的字符串会被认为是数据变量,可以通过 class="{{ className }}" 方式设置class,但是vue不推荐这种方式与 v-bind:class 的方式混用,二者只能选其一。v-bind:class 虽然与class属性里绑定变量的方式不能共存,却可以与原生的class特性共存, 一个DOM标签中允许同时出现原生class和v-bind:class。

2.1 v-bind:class 支持string类型,不建议这样使用,因为string值是固定不变的,无法实现动态改变class的需求

HTML代码:

<div :class=" 'classA classB' ">Demo1</div>

渲染后的HTML:

<div class="classA classB">Demo1</div>

2.2 v-bind:class 支持数据变量,当变量值改变时,将同时更新class。v-bind:class指令的值限定为绑定表达式,如javascript表达式

HTML代码:

<div :class="classA">Demo2</div>

Javascript代码:

data: {
 classA: 'class-a' //当classA改变时将更新class
}

渲染后的HTML:

<div class="class-a">Demo2</div>

写在指令中的值会被视作表达式,如javascript表达式,因此v-bind:class接受三目运算:

HTML代码:

<div :class="classA ? 'class-a' : 'class-b' ">Demo3</div>

渲染后的HTML:

<div class="class-a">Demo3</div>

2.3 v-bind:class 支持对象,对象改变时会动态更新class

HTML代码:

<div :class="{ 'class-a': isA, 'class-b': isB}">Demo4</div>

Javascript代码:

data: {
 isA: false, //当isA改变时,将更新class
 isB: true  //当isB改变时,将更新class
}

渲染后的HTML:

<div class="class-b">Demo4</div>

HTML代码:

<div :class="objectClass">Demo5</div>

Javascript代码:

data: {
 objectClass: {
  class-a: true,
  class-b: false
 }
}

渲染后的HTML:

<div class="class-a">Demo5</div>

2.4: v-bind:class支持数组, 数组里的变量改变时,会动态更新class列表

HTML代码:

<div :class="[classA, classB]">Demo6</div>

Javascript代码:

data: {
 classA: 'class-a',
 classB: 'class-b'
}

渲染后的HTML:

<div class="class-a class-b">Demo6</div>

数组中可以包含object类型,数组中的object对象改变,也会更新class列表

HTML代码:

<div :class="[classA, classB]">Demo7</div>

Javascript代码:

data: {
 classA: 'class-a',
 objectClass: {
  classB: 'class-b', // classB 的值为class-b, 则将classB的值添加到class列表
  classC: false,  // classC值为false,将不添加classC
  classD: true  // classD 值为true,classC将被直接添加到class列表
}
}

渲染后的HTML:

<div class="class-a class-b classD">Demo7</div>

总结:触类旁通,基本上都一样。

以上所述是小编给大家介绍的vue 中动态绑定class 和 style的方法代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 插件开发方法小结
Oct 23 Javascript
JavaScript 事件冒泡简介及应用
Jan 11 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
Jquery给基本控件的取值、赋值示例
May 23 Javascript
javascript实现动态导入js与css等静态资源文件的方法
Jul 25 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
Aug 26 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
Jun 03 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
Dec 19 Javascript
Vue2.0 v-for filter列表过滤功能的实现
Sep 07 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 Javascript
一个简单的node.js界面实现方法
Jun 01 #Javascript
浅析前端路由简介以及vue-router实现原理
Jun 01 #Javascript
Vue中的混入的使用(vue mixins)
Jun 01 #Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 #Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 #Javascript
Express之托管静态文件的方法
Jun 01 #Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 #Javascript
You might like
php计算2个日期的差值函数分享
2015/02/02 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python在不同目录下导入模块的实现方法
2017/10/27 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
生物化工专业个人自荐信
2013/09/26 职场文书
教师对学生的寄语
2014/04/03 职场文书
校庆标语集锦
2014/06/25 职场文书
个人授权委托书范文
2014/09/21 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
开会通知
2015/04/20 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
员工福利申请报告
2015/05/15 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android